アップデートしました。
細かく見ていないけど、ちゃんと動いているっぽいかな。
いつの間にかcategoryプラグインも、ちゃんと順不同リストで出力してくれるようになっていたことに今さら気付きました。
Firefoxで、ページ中にある読み込み済みのFlashアプリケーションをdisplay:noneとして非表示にしてしまうと、ActionScriptが外に出している関数がJavaScript側から呼べなくなってしまう。これが結構困る。
隠していたブロックをdisplay:blockなどとして再度画面に表示させてやると、さらに困ったことに、Flashアプリケーションは初期化されてしまう。何でFirefoxがこういう動きをするのか分からないんだけど、フルFlashで作成されたWebアプリケーションでもない限り、ページの一部をFlashを非表示にさせたいニーズは(主にデザイナ側から)出て来ると思うので、何とかしないといけない。Prototype.jsのtoggleなんかは、この場合アウトである。
とりあえずdisplayプロパティを使わない方法としてはvisibilityプロパティかなぁと思ったので、こんな感じだろうか。
element.style.width = 0; element.style.height = 0; element.style.visibility = "hidden";
隠したいFlashをラップしているdiv要素を、隠す。この時に子要素も全てvisibilityを変更して行く。試した結果とコードは以下のページに。
IE6だとちょっと動きが変かも。とりあえずFirefoxの件の挙動は回避できる。
最近のツッコミ
参号館 日記(ariyasacca)
ツッコミもテスト。