我无法让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的工作原理,我缺少什么?
答案 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());