是否可以使用java代码来调用网站源代码中的javascript函数?
想象一个具有以下代码的网站:
<script>
function sayHello(name) {
return "Hello " + name;
}
</script>
我可以从连接到该网页的客户端调用“sayHello”吗? (我知道如果我在本地保存了 *.js 文件,我可以从 java 调用 javascript。但我不希望这样,因为 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 代码(外部、在此元素之前加载等),因此您可能还需要检查这些“依赖关系”。
关于java - 从java代码调用网站的javascript函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21753687/