設定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
数年前は、locationIE では機能せず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.hrefsame-origin-policy:javascript.info/tutorial/…