1

java.net.URL と入力ストリームを使用して、Web ページのコンテンツを文字列で取得しています。

私のjavascriptがレンダリングされておらず、そのままの応答を取得しているという問題があります。

<html>
 <head></head>
 <body>
  <script>
   document.write("<h1>hello world!</h1>");
  </script>
 </body>
</html>

これが HTML ファイルに記述されたコードであると仮定します.. Web ページのコンテンツを文字列で取得するときに必要な.. JavaScript をレンダリングする必要があります..

<html>
 <head></head>
 <body>
   <h1>Hello World!</h1>
 </body>
</html>

このように..どうすればそれができますか????

4

2 に答える 2

1

JavaScript は java.net.URL によって自動的に実行されません。インライン JavaScript を含む HTML ファイルは、他のプレーン テキスト ファイルと見なされるだけで、まったく解析されません。DOM は構築されず、JavaScript は実行されず、CSS は適用されません。JavaScript を実行するために必要なことは、HtmlUnitなどで解析することです。

ただし、HTML を制御できる場合は、document.write()ステートメントを静的な HTML に置き換えることをお勧めします。もちろん、非常に初歩的な代替手段は、正規表現document\.write\(([^\)]+)\);?を検索して、最初にキャプチャされた一致に置き換えることです。

于 2009-11-10T09:15:46.867 に答える
0

https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/LiveConnect/JSObject

上記の netscape.javascript.JSObject クラスの eval メソッドは、あなたが探しているものかもしれません (ただし、DOM 操作を処理するかどうか、ブラウザー間で機能するかどうかはわかりません)。

幸運を!

于 2009-11-10T09:52:39.357 に答える