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 を実現できると良い感じかと。
Posted by dT by 21:28
私たちの生活の中でも、さまざまな選択があるように、JavaScriptのプログラムにも、条件によって処理を変化させる「条件分岐」というものがあります。...
[続きを読む]