Javaコードを使用して、Webサイトのソースコードにあるjavascript関数を呼び出すことは可能ですか?
次のコードのWebサイトを想像してみてください。
<script>
function sayHello(name) {
return "Hello " + name;
}
</script>
そのウェブページに接続しているクライアントから「sayHello」を呼び出すことはできますか?(* .jsファイルをローカルに保存していれば、javaからjavascriptを呼び出すことができます。ただし、関数を呼び出したいWebサイトでJSが変更される可能性があるため、これは望ましくありません)。
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.eval(..); //is it possible to invoke the JS function on the website?
最初にスクリプトタグのコンテンツを解析し(手動でHTMLページをフェッチし、次にRegExpを使用してすべてのスクリプト要素のコンテンツを検索する)、次にそれを文字列としてeval()に渡す必要があると思います。あまり<script>
良くないことは、のJSコードが他のJSコード(外部、この要素の前にロードされるなど)を使用している可能性があるため、これらの「依存関係」も確認する必要がある場合があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加