Labs/libs/SWFAddress/Safari3での問題

Safari3Betaで、SWFAddress.setValue('hoge')を実行した際、隠しFORM { @action -> #hoge, @method -> get }をsubmitして、
履歴を追加するため、URLに?が付いていない場合、ファイル名の最後に?を追加され、HTMLはリフレッシュされ、SWFは振り出しに戻ります。

javascript:alert(asual.util.Browser.version)

ブラウザ 結果 再現 navigator.userAgent
Safari3.0.3 522.12 Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-jp)
AppleWebKit/?522.11.1 (KHTML, like Gecko)
Version/3.0.3
Safari/522.12.1
Shiira2.2 125 Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-jp)
AppleWebKit/?522.11.1 (KHTML, like Gecko)
Shiira
Safari/125
Safari3.0.3(Windows) 522.15 Mozilla/5.0 (Windows; U; Windows NT 5.1; ja)
AppleWebKit/?522.15.5 (KHTML, like Gecko)
Version/3.0.3
Safari/522.15.5

> WebKitのバージョンを特定する方法


それを回避するために、以下の記述をします。

以下はそれを回避するための方法のドラフトです。

var l = document.location.toString();
var b = asual.util.Browser;

if(b.safari&&l.indexOf("?")==-1)
    document.location.href = l.indexOf("#")>=0 ? l.split("#").join("?#") : (l + "?");

else {
    var so = new SWFObject("hoge.swf", "hoge", "100%", "100%", 8, "#FFFFFF");
        ・
        ・
        ・
    so.write("flashcontent");
}

hoge.html#permalinkにアクセスした際、SWFを表示せず、hoge.html?#permalinkに強制的に遷移させます。