从java代码调用网站的javascript函数?

时间:2014-02-13 12:01:10

标签: java javascript

是否可以使用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?

3 个答案:

答案 0 :(得分:1)

我认为您必须先解析脚本标记的内容(手动获取HTML页面,然后使用例如RegExp查找所有脚本元素的内容),然后将其作为字符串传递给eval()。不太好的是<script>中的JS代码可能正在使用其他一些JS代码(外部,在此元素之前加载等),因此您可能还需要检查这些“依赖项”。

答案 1 :(得分:0)

你只能通过Ajax call或像iframe刷新

这样的老式方式来实现

答案 2 :(得分:0)

如果我理解正确,你想在网站上调用现有的JavaScript,并自己添加一些逻辑。

您根本不必使用Java,只需通过

将JavaScript注入该页面即可
  1. bookmarklets

  2. 浏览器扩展我建议Kango

  3. 或者只是将代码粘贴到浏览器控制台