2017-04-18 55 views
0

我的程序有问题。我有一个网页浏览的舞台,我想要有时更改HTML文件,但我无法重新加载网页视图并动态查看我的更改。如何在WebView中加载新文件?

public void showme(String what) { 
    try { 
     WebEngine webEngine = webvw.getEngine(); 
     System.out.print("vsengine_projects/" + xoxo + "/" + what); 
     URL url = this.getClass().getResource("vsengine_projects/" + xoxo + "/" + what); 
     webEngine.load(url.toString()); 
     System.out.println("KK"); 
    } catch (Exception e) { 
     System.err.println("EXC " + e); 
    } 
} 

此代码的工作,但只是为HTML文件的第一个版本,当我改变的HTML文件,并调用SHOWME东西()再次,没有发生。 Html文件位于本地目录中。有没有可能动态重新加载网络视图?

+0

你叫'SHOWME()'从_JavaFX thread_(使用'Platform.runLater()')? –

+0

不,我不是,但我可以尝试。 –

回答

0

我想你需要在显示缓存之前清除缓存。也许在调用该函数开始执行以下操作:

java.net.CookieHandler.setDefault(new java.net.CookieManager()); 

我发现如何从这个answer下面引用清除会话数据:

会话cookie为JavaFX的WebView存储在java.net.CookieHandler

要对 java.net.CookieManager:

java.net.CookieManager manager = new java.net.CookieManager(); 

自己创建新实例管理Cookie,然后将其设置为默认:

java.net.CookieHandler.setDefault(manager); 

清除个人只需调用RemoveAll方法:

manager.getCookieStore().removeAll(); 

或者只是创建cookie管理器的新实例并将其设置为的默认:

java.net.CookieHandler.setDefault(new java.net.CookieManager()); 
相关问题