簡體   English   中英

從 Java 運行 Javascript(但需要 jQuery、DOM 和 ajax)

[英]Running Javascript from Java (but need jQuery, DOM and ajax)

我正在構建一個帶有圖表的網絡應用程序。

對於圖表,我使用了 jsPlumb 庫鏈接: https ://jsplumbtoolkit.com/

我的要求之一是像流程圖一樣在圖表中制作塊。 一種類型的塊可以通過可定制的腳本插入。 因此,當用戶雙擊該塊時,他們可以在 textarea 中輸入 Javascript 代碼並稍后執行。

這就是我的問題:我能夠很好地運行腳本代碼,當它仍然在前端(jsp)使用瀏覽器使用來自 Javascript 的“新函數”時。 但是塊保存后,腳本保存到DB。 如果我需要再次運行它,那么它將從后端(Java)執行。

因此,我使用 ScriptEngine 來運行 Javascript。 問題是 Java 無法識別 ajax、$-sign、控制台等。 后來我發現,ScriptEngine 不支持那些東西。

所以,我想知道是否有任何可能的方法使這些成為可能? 我對其他替代想法持開放態度。

謝謝

使用HtmlUnit Java 庫

示例代碼

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 頁面中動態注入腳本標記

如果您在代理后面,那么

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

替代想法

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

站點中提供的示例代碼和完整文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM