1

サイトが戻るボタンに正しく応答するようにしようとしています。やりたいことのハッシュを保存しましたが、ハッシュがいつ変更されたかをjQueryが判断できるようにするためのフックがわかりません。ページがリロードされないため、.ready()ではありません。何を使いますか?

少し明確にするために編集します。

iframeを使用しているので、誰かがリンクをクリックしたときにわかりません。同じサブドメインにあるので、ファイルパスを確認でき、ブックマークできるように保存しています。残念ながら、ハッシュとして保存すると、戻るボタンがリロードに失敗し、iframeのリロードに失敗するため、戻るボタンは基本的に壊れています。URIがいつ変更されるかを知る方法があれば、iframeアドレスと照合して、一致しない場合は変更することができます。

必要なのは、URIが変更されたかどうかを確認する方法だけです。URIに.change()はありますか?それらの線に沿って何か?

4

5 に答える 5

4

履歴イベントプラグインを試すことができます。

于 2009-09-02T18:07:31.023 に答える
3

ドキュメントの準備ができたら、ハッシュを調べてページを適切に変更します。

ハッシュがいつ変更されたかをjQueryが判断できるようにするためのフックがわかりません

「ハッシュが変更されました」イベント(存在しない)を待つのではなく、ハッシュアンカーのクリックイベントをインターセプトして適切に応答できます。

window.location.hash一部のアプローチでは、タイマーを検査して「ハッシュが変更されました」イベントを作成します。

于 2009-09-02T18:07:26.093 に答える
2

ベン'カウボーイ'アルマンはハッシュ変更のためのクロスプラットフォームプラグインを書きました

http://benalman.com/news/2010/07/jquery-hashchange-event-v13/

iframe内で使用するのかどうかはわかりませんが、iframe外で使用する場合は次のようになります。

$(function(){
    $(window).hashchange(function(){
       //Insert event to be triggered on has change.
       changeIframeContent(window.location.hash);
    })
})
于 2011-01-18T05:03:37.363 に答える
1

イベントを非DOMオブジェクトにバインドするBenNadelのソリューションを確認する必要があります。

于 2009-10-24T11:24:53.910 に答える
0

ハッシュの変更を監視するための適切な方法はありません。Firefoxではwatchメソッドを使用できますが、私が知る限り、これはデフォルトではないため、次のように記述してハックすることができます(以下を参照)。

function setWatchHashChanges(functionObject)
{
    if(window.location.watch)
    {
        window.location.watch('hash', function(e){functionObject(e);return e;});
    } else {
        if(!setWatchHasnChanges.hash)
        {
            setWatchHasnChanges.hash = window.locaton.hash;
        } else {
            setInterval(function(){
            if(setWatchHasnChanges.hash!== window.locaton.hash)
            {
                setWatchHasnChanges.hash = window.locaton.hash;
                functionObject(setWatchHasnChanges.hash);
            }
        }, 100);
    }
}
于 2009-09-02T18:23:57.747 に答える