1

Webブラウザ内からいくつかの標準JSDOMオブジェクトを動的に変更したいと思います。

たとえば、私が実行すると:

var site = location;

実行時に、ブラウザの「window.location」オブジェクトに「正しい」オブジェクト(要求されたページへのアクセスに使用されるURL)以外の新しい値を指定したいのですが、デバッガのようなインターフェイスを介して、または必要に応じてプログラムで指定することもできます。 。

Firebugは、「DOM Inspector」を介して同様の機能をアドバタイズしますが、デバッガーを介してJavascriptを一時停止しているときにDOM値を変更しようとすると、入力した新しい値を無視します。いくつかの調査を行った後、これはこのバグレポートによると既知の問題のようです:http ://code.google.com/p/fbug/issues/detail?id=1707 。

理論的には、HTTPソケットを開いてブラウザの「ユーザーエージェント」をエミュレートするプログラムを作成することもできますが、これは私の目的にとっては多くの問題のように思われます。私が尋ねている間、HTTPヘッダーをエミュレートして受信したHTML/JSを解析する関数/オブジェクトを備えた優れたJava/C#ライブラリを知っている人はいますか?私はそのようなライブラリの存在を長い間夢見てきましたが、私が試したライブラリのほとんど(JavaのApache HttpClient、C#のSystem.Net.HttpWebRequest)は低レベルであり、最小限の計画と短期間で価値のあるものを作成することはできません。時間の。

あなたが提供できる推奨事項とアドバイスを事前に感謝します!

4

1 に答える 1

0

私があなたを正しく理解しているかどうかはわかりませんが、ロードされたURLを変更したい場合は、を設定することで変更できますwindow.location.href。DOMビルドインを置き換えることを目的としている場合、ほとんどのビルトインオブジェクト(ホストオブジェクト)は通常のJavaScriptオブジェクトではなく、その動作が明確に定義されていないことを聞いて悲しいでしょう。一部のブラウザでは、一部のオブジェクトを置換および/または拡張できる場合がありますが、他のブラウザでは、それらはまったく置換/拡張できません。

JavaScriptを使用して「ブラウザのスクリプトを作成」する場合は、間違いなくnode.jsとそのhttpモジュールを確認する必要があります。node.jsのDOMをシミュレートし、jQueryの使用を可能にするhtml5と呼ばれるサードパーティモジュールもあります。

于 2011-06-02T00:05:51.130 に答える