如何从loadContent()加载html和javascript进入webengine?

有人可以提供一些关于如何从loadContent()加载到webviewer的建议吗?

我试图做这样的事情,但似乎没有用。 谢谢!

Scanner sc1 = new Scanner(new File("src/web/web.html")); String webStr = sc1.useDelimiter("\\Z").next(); Scanner sc2 = new Scanner(new File("src/web/data.js")); String dataStr = sc2.useDelimiter("\\Z").next(); Scanner sc3 = new Scanner(new File("src/web/cytoscape.min.js")); String cytoStr = sc3.useDelimiter("\\Z").next(); Scanner sc4 = new Scanner(new File("src/web/jquery.min.js")); String jqueryStr = sc4.useDelimiter("\\Z").next(); webEngine.loadContent(cytoStr, "text/javascript"); webEngine.loadContent(jqueryStr, "text/javascript"); webEngine.loadContent(dataStr, "text/javascript"); webEngine.loadContent(webStr, "text/html"); 

首先需要将这三个文件放在同一级别或硬盘驱动器上的资源中。

要直接从内存加载内容,您可以使用

 webView.getEngine().loadContent("your html") 

来自JavaDoc :

public void loadContent(String content)

直接加载给定内容。 当您在内存中编写内容或从某些无法通过URL访问的系统加载内容时,此方法很有用。

请注意,链接的资源应该由他们的URL提供,即在磁盘或资源上。 为了反映您的Web应用程序中的动态更改,我建议您从JS调用Java。 这可以通过在JS应用程序中提供Java对象来完成: 使用JSObject在WebView中使用JavaFX和JavaScript之间的通信

在这里,您可以找到一个浏览器演示和一个简化的WebView组件: 用于显示网页和返回HTML的Java GUI 。

我刚刚发现在HTML中使用标签也可以解决问题:

   The slash at the end of the href is important!       

如果通过engine.loadContent(String)加载上述代码, engine.loadContent(String)/absolute/path/to/your/docroot/https://stackoverflow.com/questions/20164062/how-to-load-both-html-and-javascript-into-webengine-from-loadcontent/image.png加载/absolute/path/to/your/docroot/https://stackoverflow.com/questions/20164062/how-to-load-both-html-and-javascript-into-webengine-from-loadcontent/image.png

如果需要加载多个资源,则此方法更容易,因为您只需在单个位置指定绝对路径。

这已经使用Java 8u25的WebView进行了测试。

您只需要使用WebEngineload()方法加载HTML页面。 WebEngine将为您完成相关CSS和JavaScript的WebEngine

以下是我将AceEditor加载到WebView

在此处输入图像描述

而这样做的代码只有两行:

 engine = webView.getEngine(); engine.load("file:///home/littlejavachild/Downloads/AceEditor/ace-builds-master/MyTry.html"); 

引擎为我处理JavaScript源和CSS的加载。

该方法的文档在这里:

 public void load(java.lang.String url) 

将网页加载到此引擎中。 此方法启动异步加载并立即返回。

参数:url – 要加载的网页的URL

Interesting Posts