可以't在javafx Webview上加载CSS/JS

Can't load CSS/JS on javafx Webview

本文关键字:加载 CSS JS Webview javafx 可以      更新时间:2023-09-26

我在让css/js显示在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时有效,没有问题。但是Still不适用于我正在加载的内容。

加载的内容(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来确认它是否有效,我缺少什么?

区块报价

我可以通过修改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);

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

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