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

http://jsbin.com/aqupun/6/edit

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

    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获得,即在磁盘上还是在资源中。为了反映Web应用程序中的动态变化,建议您从JS调用Java。这可以通过在JS应用程序中提供Java对象来完成:Communication between JavaFX and JavaScript inside WebView, using JSObject

在这里,您可以找到一个浏览器演示和一个简化的WebView组件:Java GUI to display webpages and return HTML

07-28 02:05
查看更多