サーバー側でJavaScriptをレンダリングする方法
-
19-09-2019 - |
質問
私はのjava.net.URLと入力ストリームを使用して文字列内のWebページのコンテンツを取得メートルます。
問題私は私のジャバスクリプトをレンダリングしていないと私はそれが応答であるようになっていることメートルm個ます。
<html>
<head></head>
<body>
<script>
document.write("<h1>hello world!</h1>");
</script>
</body>
</html>
Javascriptをレンダリングbでなければならない..私は、文字列内のWebページのコンテンツを取得するときに、今私が欲しい。これは、HTMLファイルに記述されたコードであると仮定..
<html>
<head></head>
<body>
<h1>Hello World!</h1>
</body>
</html>
このような..私はそれを行うことができますか????
解決
JavaScriptがのjava.net.URLによって自動的に実行されません。インラインJavaScriptを使用してHTMLファイルは、他のプレーンテキストファイルとして見られているとどのような方法で解析されません。 DOMが構築されているNO、NOのJavaScriptが実行されていない、何のCSSが適用されません。あなたはJavaScriptが実行され得るために行う必要があることは HtmlUnit のようなもので、それを解析することです。
あなたがHTMLのコントロールを持っている場合は、しかし、私はちょうど、静的なHTMLとdocument.write()
文を置き換えるために、あなたをお勧めします。非常に初歩的な代替手段は、単に正規表現document\.write\(([^\)]+)\);?
で検索を行うと、1枚目の撮影試合でそれを置き換えることはもちろんである。
他のヒント
https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference / LiveConnectの/ JSObjectをする
言及netscape.javascript.JSObjectのクラスのevalメソッドは、あなたが探しているものかもしれません(私はそれがDOM操作の世話をするのかはわからないけれども、それはブラウザーで動作するかどうか)。
グッドラック!