回答:
window.location.href
メソッドではなく、ブラウザの現在のURLの場所を通知するプロパティです。プロパティの値を変更すると、ページがリダイレクトされます。
window.open()
新しいウィンドウで開きたいURLを渡すことができるメソッドです。例えば:
window.location.hrefの例:
window.location.href = 'http://www.google.com'; //Will take you to Google.
window.open()の例:
window.open('http://www.google.com'); //This will open Google in a new window.
window.open()
追加のパラメーターを渡すことができます。参照:window.openチュートリアル
window.location.href
がメソッドではなくプロパティであると述べていますが、Internet Explorer(少なくともバージョン10)ではhref
メソッドとしても扱うことができます。IE10でのみ、使用した1ページで機能することを確認しました。それがおそらく、質問者がhref
メソッドを呼び出していた理由です。IEがwindow.location.hrefと互換性がないという質問を参照してください。しかし、はい。IE を含むhref
すべてのブラウザで機能するプロパティとして使用することをお勧めします。
window.location.href
が同じように処理した可能性が高いと思います。結局のところ、新しいバージョンのiEは、一般に、標準ベースになりつつあります。したがって、IE10がまだ標準を破っている場合、古いバージョンもおそらく破っています。
window.open
指定されたURLで新しいブラウザを開きます。
window.location.href
コードが呼び出されるウィンドウでURLを開きます。
また、window.open()
はウィンドウオブジェクト自体の関数ですが、他のwindow.location
さまざまなメソッドやプロパティを公開するオブジェクトです。
window.openはメソッドです。新しいウィンドウを開いてカスタマイズできます。window.location.hrefは、現在のウィンドウのプロパティにすぎません。
window.location.hrefプロパティとwindow.open()メソッドについて説明する回答はすでにあります。
私は客観的に使用します:
window.location.hrefを使用します。hrefプロパティを別のページのhrefに設定します。
window.open()を使用します。目標に従ってパラメーターを渡します。
window.location.hrefを使用します。window.location.hrefプロパティの値を取得します。window.locationオブジェクトから特定のプロトコル、ホスト名、ハッシュ文字列を取得することもできます。
詳細については、Locationオブジェクトを参照してください。
window.open ()
新しいウィンドウwindow.location.href
が開きますが、現在のウィンドウに新しいURLが開きます。
window.open
新しいブラウザタブでURLを開きます。
window.location.href
(代わりに使用することができ、現在のタブでURLを開きますlocation
)
以下はフィドルの例です(SOスニペットwindow.openでは機能しません)