これらの2つの線の間に違いはありますか?
var url = "http://www.google.com/";
window.location = url;
window.location.replace(url);
これらの2つの線の間に違いはありますか?
var url = "http://www.google.com/";
window.location = url;
window.location.replace(url);
window.location
[戻る]をクリックして現在のページに戻ることができる(またはできるはずの)アイテムを履歴に追加します。
window.location.replace
現在の履歴アイテムを置き換えて、元に戻せないようにします。
参照してくださいwindow.location
:
assign(url)
:指定されたURLでドキュメントをロードします。
replace(url)
:現在のドキュメントを、指定されたURLのドキュメントに置き換えます。この方法との違いは 、現在のページassign()
を使用した後replace()
はセッション履歴に保存されないことです。つまり、ユーザーは[戻る]ボタンを使用してそのページに移動できなくなります。
ああ、一般的に言えば:
window.location.href = url;
優先されます:
window.location = url;
これら2つの行に違いはありますか?
window.location = "http://www.google.com/";
window.location.replace("http://www.google.com/");
はい。
まず、次のことを知りたいです。
window.location = "https://stackoverflow.com"
は のエイリアスであるwindow.location.href = "https://stackoverflow.com"
ため、同じ機能を持ちます。
window.location
VSwindow.location.replace
window.location:
ここで、私はwindow.location = "https://website.com"
その文脈で次のように扱っていますwindow.location.href = "https://website.com"
window.location.replace:
質問に答えるには:
はい、私たちの 2 つの主題には違いがあり、ほとんどの場合window.location
、ブラウザーの履歴に戻ることはできますが、ブラウザーの履歴に戻ることwindow.location.replace()
はできないため、ブラウザーの履歴から以前の URL レコードが削除されます。
おまけ:どちらが速い?
これを使用している場合:プロパティを直接window.location = "http://www.google.com/";
更新している場合、関数の更新はプロパティを直接更新するよりも遅いためhref
、使用するよりもパフォーマンスが高速です。window.location.replace("http://www.google.com/");
window.location
window.location
Location
次のようなオブジェクトを返します。
console.log(window.location);
// This is how the Location object that returns from window.location looks like
{
"ancestorOrigins": {},
"href": "https://stackoverflow.com/",
"origin": "https://stackoverflow.com",
"protocol": "https:",
"host": "stackoverflow.com",
"hostname": "stackoverflow.com",
"port": "",
"pathname": "/",
"search": "",
"hash": ""
}
このLocation
オブジェクトには、次のメソッド (関数) もあります。
Location.assign()
パラメーターで指定された URL でリソースを読み込みます。
Location.reload()
[更新] ボタンと同様に、現在の URL を再読み込みします。
Location.toString()
URL 全体を含む文字列を返します。これは Location.href の同義語ですが、値の変更には使用できません。