gpt4 book ai didi

javascript - 从 Java 运行 Javascript(但需要 jQuery、DOM 和 ajax)

转载 作者:行者123 更新时间:2023-11-29 20:32:45 25 4
gpt4 key购买 nike

我正在构建一个包含图表的网络应用。

对于图表,我使用了 jsPlumb 库链接:https://jsplumbtoolkit.com/

我的一个要求是在图表中制作像流程图一样的 block 。其中一种类型的 block 能够通过可定制的脚本插入。因此,当用户双击该 block 时,他们可以在文本区域中输入 Javascript 代码,稍后将执行。

这是我的问题:我能够很好地运行脚本代码,当它仍然在前端(jsp)使用浏览器使用来自 Javascript 的“新功能”时。但是保存 block 后,脚本保存到数据库中。如果我需要再次运行它,那么它将从后端 (Java) 执行。

因此,我使用 ScriptEngine 来运行 Javascript。问题是 ajax、$-sign、console 等不能被 Java 识别。后来我发现,ScriptEngine 不支持这些东西。

所以,我想知道是否有任何可能的方法使这些成为可能?我对其他替代想法持开放态度。

谢谢

最佳答案

使用HtmlUnit Java Library

示例代码

final WebClient webClient = new WebClient(BrowserVersion.CHROME);
final HtmlPage page = webClient.getPage("http://127.0.0.1:9090/mysite");
page.executeJavaScript("$");
webClient.close();

http://127.0.0.1:9090/mysite可以是你本地已经有 jquery 的网站

您还可以在空白 html 页面中动态注入(inject)脚本标签

如果你在代理后面,那么

final WebClient webClient = new WebClient(BrowserVersion.CHROME, "proxyhost", 8080);

替代想法

使用Jaunt - Java Web Scraping & JSON Querying Java 库

站点中提供示例代码和完整文档

关于javascript - 从 Java 运行 Javascript(但需要 jQuery、DOM 和 ajax),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57671922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com