ある時点でwindow.location.hash
特定の文字列に設定されるJavaScriptコードがあります。これはFirefox3で正常に機能しますが、後でこれで問題が発生するかどうかを知りたいです。つまり、これはクロスブラウザーソリューション(IE6を含む)ですか?
また、ReallySimpleHistoryを使用しています。これはその内部状態を台無しにしますか?
ありがとう
ある時点でwindow.location.hash
特定の文字列に設定されるJavaScriptコードがあります。これはFirefox3で正常に機能しますが、後でこれで問題が発生するかどうかを知りたいです。つまり、これはクロスブラウザーソリューション(IE6を含む)ですか?
また、ReallySimpleHistoryを使用しています。これはその内部状態を台無しにしますか?
ありがとう
window.location.hash
1995 年に Netscape Navigator 2 で JavaScript が導入されて以来、.
ソースをざっと見てみると、ReallySimpleHistory はこのプロパティをかなり広範囲に使用しているように見えるため、これを壊すこともできます。add(newLocation)
代わりにそのメソッドを使用することをお勧めします(これは を設定することで機能しますwindow.location.hash
)。
得る:
var hash = location.hash.slice(1);
セットする:
location.hash = '#' + 'string';
すべての「最新の」(別名 A-Graded) ブラウザでは、ハッシュを設定でき、その際にページをリロードしません。ページをリロードするのは、 Safari 2.0.4やOpera 8.5xなどの古いものです。
もう少し詳しく説明している Usenet の投稿をcomp.lang.javascript
参照してください。
また、HTML5 は最終的に、ハッシュ セッターが実際のハッシュを変更する必要があるが、ページをリロードしないように指定していることにも注意してください。
設定window.location.hash
は IE6 & IE7 で正常に動作します。
window.location.hash
場合によっては、セットの直後に IE6で読み取ると古い値が返されますが、ブラウザはハッシュを正常に設定しています。例:
alert(window.location.hash);
window.location.hash = '#newHash';
/* Sometimes, it will return the old value,
I haven't figured out why it does that, and
it's rather rare. */
alert(window.location.hash);
設定するためだけに使用している場合は、問題が発生することはありません。