設定location
とURL文字列のどちらに設定するのlocation.href
ですか?
location = "http://www.stackoverflow.com";
対
location.href = "http://www.stackoverflow.com";
設定location
とURL文字列のどちらに設定するのlocation.href
ですか?
location = "http://www.stackoverflow.com";
対
location.href = "http://www.stackoverflow.com";
回答:
location
少し短いので直接設定するかもしれません。簡潔にしようとしている場合は、通常、省略することwindow.
もできます。
両方へのURLの割り当てlocation.href
とは、location
バックNetscapeの2には、JavaScript 1.0で動作するように定義され、以来、すべてのブラウザに実装されています。だからあなたのピックを取り、あなたが最もはっきりしているものを使用してください。
両方とも機能する場合でも、後者を使用します。
location
はオブジェクトであり、オブジェクトに文字列を割り当てることは、読みやすさやメンテナンスのための良い前兆ではありません。
window.location
:それは必要ありませんSAME ORIGIN
。
すでに述べたようにです。location
、オブジェクトしかし、その人はどちらかを使用することを提案しました。 しかし、あなたはその.href
バージョンを使うほうが良いでしょう。
オブジェクトにはデフォルトのプロパティがあり、他に何も指定されていない場合は、それらが想定されます。location
オブジェクトの場合は、というプロパティがあります.href
。また、割り当て時にANYプロパティを指定しないことにより、デフォルトで「href」と見なされます。
これは、新しいオブジェクトモデルのバージョンが変更され、デフォルトのプロパティがなくなるか、デフォルトのプロパティが変更されるまで、問題なく機能します。次に、プログラムが予期せず壊れます。
もし意味href
するなら、あなたは明記すべきhref
です。
location
機能するのは、JavaScript 1.0およびそれを実装して以来のすべてのブラウザーで、この特別な割り当て動作がプロパティに定義されているためです。HTML5で必要になりました。したがって、に割り当てる方がきれいで一貫している.href
場合がありますが、下位互換性または上位互換性の利点はありません。
window.location = url
きれいです
location = url
数年前は、location
IE では機能せずlocation.href
、他のブラウザーでも機能していました。それ以来、私はいつも使用location.href
していて、二度と問題がありませんでした。IEのバージョンを覚えていません。
strict mode
直接割り当てようとするとlocation
、location.href
ただし、留意すべき違いが1つあります。
現在のURLを使用してURLを作成するとします。それが呼び出していないので、実際には次のコードの意志は、あなたをリダイレクトしString.replace
ますがLocation.replace
。
nextUrl = window.location.replace('/step1', '/step2');
次のコードが機能します。
// cast to string
nextUrl = (window.location+'').replace('/step1', '/step2');
// href property
nextUrl = window.location.href.replace('/step1', '/step2');
location.href
same-origin-policy:javascript.info/tutorial/…