Yahoo!Maps のように、FlashとJavascriptを連携させて、URLのhashを書き換えていこうと思ったら、ずっこけた。悪名高きOperaで location.hash
を書き換えると、勝手に画面がリロードされてしまう。なぜ。
いろいろ追っていった結果、現在のhash値と代入する値が同一の場合、リロードになるっぽい。どんな仕様ですか。しょうがないので、if文で分岐するがよろし。
function setHash(_value) { if(location.hash != "#" + _value) { location.hash = _value; } }
「これはバグだ!」と思ったら、なんか Safari でも同じような動きになる。スタンダードって何だろうとか考えさせる、罪なブラウザたち。やめて欲しい。
話がそれます。
Flash側から location.hash
を変更するJavaScript関数をコールして、URLをダイナミックに書き換えることで、フルフラッシュサイトで、ブラウザの進む戻るボタンが使えるようになる可能性あり。サーバー絡めず、Flash単体で permalink を実現できると良い感じかと。
このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/303
- JavaScriptの条件分岐 from ネットビジネス用CGI Perl HTML Javascriptの情報サイト at 2006年3月25日 00:17
私たちの生活の中でも、さまざまな選択があるように、JavaScriptのプログラムにも、条件によって処理を変化させる「条件分岐」というものがあります。...
[続きを読む]