小编Ste*_*ern的帖子

WebView 不重新加载具有相同 URL 的页面

当加载与之前加载的页面具有相同 url 的页面时,JavaFX 会显示一些奇怪的行为。下面的代码演示了这个问题:

在类初始化加载页面后,然后使用自定义样式类将突出显示应用于任意 html 元素。此高光已正确呈现。

最后,通过用户输入事件,WebView 被告知加载一个新页面(具有相同的 URI)。不是按原样显示页面,而是显示突出显示。

WebView webView = new WebView();
static String URI = "http://www.example.com";

public void loadPage() {
    // Step 1: load page
    webView.getEngine().load(URI);

    // Step 2: Change style attribute in page
    (Element) element = xpath.evaluate("//div[@id='mydiv']", webView.getEngine().getDocument(), XPathConstants.NODE);
    element.setAttribute("class", "mystyle");
}

handle() {
    // Step 3: load page again
    webView.getEngine().load(URI);
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用 WebView.getEngine().reload() 强制页面重新加载、禁用缓存、等待工作人员完成等。

我目前看到的唯一选择是创建一个新的 WebView 实例,但由于这对 CPU 来说很重,我更喜欢重用该对象,而不是每次我想恢复到原始页面时都创建新的对象。

java javafx webview

5
推荐指数
1
解决办法
3230
查看次数

标签 统计

java ×1

javafx ×1

webview ×1