7

windowコンソールに入力すると。windowのインスタンスであるコンソールショーWindow。を使用して新しいウィンドウ オブジェクトを作成することは可能ですかnew Window()。試してみましたが、エラーTypeError: Illegal constructorがスローされます

私の質問はLocationオブジェクトに関連しています。を使用して新しいオブジェクトを作成できますLocationか? locationオブジェクトで利用可能なメソッドをリンクに適用できるようにするために必要です。

Location オブジェクトにアクセスしようとしましたが、成功しませんでした。

を使用してChrome consoleいます。

4

6 に答える 6

5

Locationを使用して任意の URI を操作しようとすると、期待どおりに動作しませんLocationオブジェクト/タイプは一般的な URI コンテナーではなく、DOM とそのナビゲーション状態との特別契約です。

このURI JavaScript タイプは、 google、YMMV 経由で webr3によって見つかりました。

JavaScript の URI タイプ

  • あらゆる種類の URI (URL、URN、任意のスキーム) をサポートします。
  • 相対 URI 解決
  • すべてのクラスは、ネイティブの String 実装を拡張します。
  • URI 仕様の純粋な ECMA-262 実装 (RFC-3986)
  • Works クライアントまたはサーバー側 (V8 / node.js 互換)。
于 2012-10-01T21:01:36.210 に答える
4

いいえ、できません。ブラウザ ウィンドウには のインスタンスが 1 つwindowあり、ウィンドウには のインスタンスが 1 つありますlocationwindow複数のorのインスタンスを作成しようとするwindow.locationことは、概念的なエラーを示しているように思われます。

あなたが何をしたいのかを正しく理解している場合はanchor、javascript で操作する要素を作成する必要があります。

var url = document.createElement('a');
url.href = "http://www.example.com/some/path?name=value#anchor";
var protocol = url.protocol;
var hash = url.hash;

alert('protocol: ' + protocol);
alert('hash: ' + hash);

または、すでにアンカーがある場合は、使用できます

var url = document.getElementById('myanchorid');

</p>

于 2012-10-01T20:50:56.727 に答える
1

windowオブジェクトをシングルトンと想像してください。その新しいインスタンスを作成することはできません。それはどういう意味ですか?新しいWindow内部は何でしょうWindowか?locationのオブジェクトと同様Windowです。それぞれWindowにがありますが、一度に 2 つの を指定することはできlocationません。Windowlocation

用途を変更するlocationにはWindow:

window.location.href = "http://www.google.com";

新しい (子) Window— ポップアップ ウィンドウ —を作成するには、オブジェクトのopenメソッドを使用します。window

window.open('http://www.example.com');

リンクの「場所」を変更するhrefには、リンクの属性を変更します。たとえば、HTML リンクを変更するには、次のようにします。

<a href="http://www.google.com" id="mylink">Visit Website</a>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

... 使用する ...

document.getElementById("mylink").href = "http://www.yahoo.com";
于 2012-10-01T20:56:09.960 に答える