window.location.href
との違いを誰かに教えてもらえtop.location.href
ますか?
また、どこを使用するか。
そして、mvcのajax呼び出しの後にリダイレクトする場合、どちらが優れていますか?
回答:
window.location.href
現在のページの場所を返します。
top.location.href
(のエイリアスwindow.top.location.href
)は、ウィンドウ階層の最上位ウィンドウの位置を返します。ウィンドウに親がない場合top
は、それ自体への参照です(つまり、window
=== window.top
)。
top
フレームを扱うときと、他のページによって開かれたウィンドウを扱うときの両方に役立ちます。たとえばtest.html
、次のスクリプトで呼び出されるページがあるとします。
var newWin=window.open('about:blank','test','width=100,height=100');
newWin.document.write('<script>alert(top.location.href);</script>');
結果のアラートには、about:blankではなく test.htmlへの完全なパスwindow.location.href
が返されます。
リダイレクトに関する質問に答えるには、 window.location.assign(url);
top.location.href
window.top.location.href
window
top
すべての現在のフレーム(残りのウィンドウの親)を含むウィンドウオブジェクトを参照します。window
現在のwindow
です。
http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
そのためtop.location.href
、すべてのフレームを含む「マスター」ページリンクを含めることができますwindow.location.href
が、「現在の」ページリンクのみを含めることができます。
1つ目は、「戻る」をクリックして現在のページに戻ることができる(またはできるはずです)ことで、履歴に項目を追加します。
2番目は、現在の履歴アイテムを置き換えるため、元に戻すことはできません。
を参照してくださいwindow.location
。
assign(url)
:指定されたURLでドキュメントをロードします。
replace(url)
:現在のドキュメントを、提供されたURLにあるドキュメントに置き換えます。このassign()
方法との違いはreplace()
、現在のページを使用した後はセッション履歴に保存されないため、ユーザーは[戻る]ボタンを使用してそのページに移動できないことです。
window.location.href = url;
よりも支持されています:
window.location = url;