0

たとえば、次のような URL があるとします: http://yoursite.com/#stackoverflow

アドレスバーに新しいハッシュを入力すると、ページ上でその ID を見つけようとします。そのブラウザのアクティビティを検出し、その URL でページを強制的にリロードする方法はありますか (おそらく JavaScript を使用しますか?)。

ありがとう!

4

3 に答える 3

1

hashchangeイベントにバインドする必要があります。

window.onhashchange = function() {
    window.location.reload();
};

ただし注意してください: 一部の古いブラウザーはこのイベントをサポートしていないため (これを参照)、これらのブラウザーにはポリフィルが必要です。

古いブラウザの例とポーリング手法を次に示します。

if ('onhashchange' in window) {
    window.onhashchange = function() {
        window.location.reload();
    };
} else {
    var hash = window.location.hash;
    setInterval(function() {
       if (window.location.hash !== hash) {
           window.location.reload();
       }
    }, 100);
} 
于 2012-07-07T18:27:15.830 に答える
0

hashchange新しいブラウザでは、 eventを使用できます。実際、それに対するサポートはかなり良いです。location.hash古いブラウザーでは、 (setIntervalまたは などを使用して) をポーリングする必要がありますsetTimeout

于 2012-07-07T18:26:04.993 に答える