23

ある時点でwindow.location.hash特定の文字列に設定されるJavaScriptコードがあります。これはFirefox3で正常に機能しますが、後でこれで問題が発生するかどうかを知りたいです。つまり、これはクロスブラウザーソリューション(IE6を含む)ですか?

また、ReallySimpleHistoryを使用しています。これはその内部状態を台無しにしますか?

ありがとう

4

5 に答える 5

25

window.location.hash1995 年に Netscape Navigator 2 で JavaScript が導入されて以来、.

ソースをざっと見てみると、ReallySimpleHistory はこのプロパティをかなり広範囲に使用しているように見えるため、これを壊すこともできます。add(newLocation)代わりにそのメソッドを使用することをお勧めします(これは を設定することで機能しますwindow.location.hash)。

于 2009-08-12T10:49:31.430 に答える
15

得る:

 var hash = location.hash.slice(1);

セットする:

 location.hash = '#' + 'string';
于 2009-08-11T23:25:05.447 に答える
4

すべての「最新の」(別名 A-Graded) ブラウザでは、ハッシュを設定でき、その際にページをリロードしません。ページをリロードするのは、 Safari 2.0.4Opera 8.5xなどの古いものです。

もう少し詳しく説明している Usenet の投稿をcomp.lang.javascript参照してください。

また、HTML5 は最終的に、ハッシュ セッターが実際のハッシュを変更する必要があるが、ページをリロードしないように指定していることにも注意してください

于 2009-08-12T19:29:44.137 に答える
3

設定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);

設定するためだけに使用している場合は、問題が発生することはありません。

于 2009-08-11T23:28:04.677 に答える