ある時点でwindow.location.hash
を特定の文字列に設定するJavaScriptコードがいくつかあります。これはFirefox3で正常に機能しますが、後でこれで問題が発生するかどうかを知りたいです。つまり、これはクロスブラウザーソリューション(IE6を含む)ですか?
また、ReallySimpleHistoryを使用しています。これは内部状態を台無しにしますか?
ありがとう
_window.location.hash
_は、1995年にNetscape Navigator2でJavaScriptが導入されて以来存在しています。1996年にInternetExplorer3でMicrosoftによって最初にサポートされました。JS対応のすべてのブラウザがJavaScriptをサポートしていることは間違いありません。
ソースを一目見ただけでは、ReallySimpleHistoryがこのプロパティをかなり広範囲に使用しているように見えるので、壊してしまう可能性があります。代わりに、そのadd(newLocation)
メソッドを使用することをお勧めします(これは_window.location.hash
_を設定することで機能します)。
Get:
var hash = location.hash.slice(1);
設定:
location.hash = '#' + 'string';
私が知っている古いスレッドですが、window.location.hash
もサイズ制限の対象となります。大量のデータを渡していて、状態をハッシュに保存したい場合は、いくつかの問題が発生する可能性があります。
IEはエラーを出します:SCRIPT5 - Access denied.
制限を超えているハッシュを割り当てようとすると非常に便利です。
ただ考えるための食べ物。
すべての「最新の」(別名Aグレード)ブラウザでは、ハッシュを設定でき、そうするときにページを再読み込みしません。 ページをリロードしますは、Safari 2.0.4やOpera 8.5xなどの古いものです。
comp.lang.javascript
に関する私のUsenetの投稿を参照してください。ここで、もう少し詳しく説明します。
また、HTML5は最終的に、ハッシュセッターが実際のハッシュを変更する必要があることを指定していますが、ページをリロードしないであることに注意してください。
window.location.hash
の設定は、IE6およびIE7で正常に機能します。
場合によっては、セットの直後にIE6でwindow.location.hash
を読み取ると古い値が返されますが、ブラウザーはハッシュを正常に設定しています。例:
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);
設定に使用しているだけであれば、問題は発生しません。