无法在javafx Webview上加载CSS / JS

时间:2016-01-01 08:15:32

标签: javascript html css javafx webview

我无法让css / js显示在Webview上。

这是我正在做的事情:

初始化webview和引擎

WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
webEngine.setJavaScriptEnabled(true);

这是我加载html内容的地方:

htmlViewImgBtn.addEventHandler(MouseEvent.MOUSE_CLICKED,
    new EventHandler<MouseEven
        @Override
        public void handle(MouseEvent event){

            if (counter == 0){
            contentContainer.getChildren().addAll(browser);
            webEngine.loadContent(export.getHTML(note));
            //browser.getEngine().load("http://stackoverflow.com/questions/34554583/cant-load-css-js-on-javafx-webview");
            contentContainer.getChildren().remove(noteContent);
            counter = 1;
           }

           else {
           contentContainer.getChildren().remove(browser);
           contentContainer.getChildren().addAll(noteContent);
           counter = 0;
           }
       }
});

注意:注释代码在将网站加载到webview时起作用,没有问题。但仍然不适用于我正在加载的内容。

加载的内容(HTML)看起来像这样:

<link href="prism.css" rel="stylesheet" type="text/css" />
<script src="prism.js" type="text/javascript"></script>
<pre><code class="language-java">System.out.println("Hello");
</code></pre>

此外,css和js文件与java文件在同一目录中

我可以通过在网络浏览器上加载来确认html的工作原理,我缺少什么?

2 个答案:

答案 0 :(得分:2)

  

块引用

我能够通过修改html来实现它:

"<link href=\"" + getClass().getResource("./prism.css") + "\"" + " rel=\"stylesheet\"" + " type=\"text/css\"" +  " />\n" + 
"<script src=\"" + getClass().getResource("./prism.js") + "\"" + " type=\"text/javascript\"" + "></script>\n" +
(rest of html);

答案 1 :(得分:1)

您可以使用ResourceLoader加载与Java类位于同一目录中的HTML,js和css。

    URL url = getClass().getResource("index.html");
    webEngine.load(url.toExternalForm());