我目前正在处理一个 GWT 项目,我在我的应用程序的 iframe 中显示一个 HTML 文件。这个 HTML 文件实际上是在显示时被写入的,我希望能够重新加载框架,以便对 HTML 文件所做的更改反映在屏幕上。我能够做到这两种不同的方式在开发模式下运行时都可以工作,但是在部署项目时似乎都不起作用。
我尝试的第一种方法是将框架的 URL 设置为自身:
frame.setUrl(frame.getUrl());
我尝试使用 JSNI 的第二种方法:
public native void refresh() /*-{
if($doc.getElementById('__reportFrame') != null) {
$doc.getElementById('__reportFrame').src =
$doc.getElementById('__reportFrame').src;
}
}-*/;
部署后,框架会显示在窗口中,当文件写入完成时,会调用这些刷新方法中的任何一个,并且框架会刷新以包含完成的 HTML 文件。部署时,刷新调用不会重新加载框架的内容,但是如果我调出框架的上下文菜单(在 Firefox 中),然后进入“此框架”,然后单击“重新加载”,它会成功将框架重新加载到包含完成的 HTML 文件。我已经在多个版本的 Firefox 上对此进行了测试,但没有任何运气。
有没有人有什么建议?为什么行为会从一种模式到另一种模式不同?
谢谢。