我尝试使用(JavaXPCOM)重新加载网页:
nsIWebBrowser webBrowser = (nsIWebBrowser) browser
.getWebBrowser();
nsIWebNavigation webNavigation = (nsIWebNavigation) webBrowser.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);
try {
nsISHistory sessionHistory = webNavigation.getSessionHistory();
if (sessionHistory != null) {
webNavigation = (nsIWebNavigation) sessionHistory.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);
}
} catch (XPCOMException e) {
}
webNavigation.reload(nsIWebNavigation.LOAD_FLAGS_NONE);
但重装根本不会发生。我尝试使用以下标志强制它,但页面也不刷新:
nsIWebNavigation.LOAD_FLAGS_BYPASS_PROXY|nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE
任何人都知道可能是什么原因? 谢谢!
答案 0 :(得分:0)
您是否尝试检查错误控制台是否存在语法错误?您似乎试图在JavaScript中使用C ++类型转换。那不行。假设browser
是<browser>
元素,这应该有效:
browser.reload();
或者:
browser.reloadWithFlags(Components.interfaces.nsIWebNavigation.LOAD_FLAGS_BYPASS_PROXY|Components.interfaces.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE);
有关<browser>
元素的文档,请参阅https://developer.mozilla.org/en/XUL/browser。
编辑:鉴于这显然是使用JavaXPCOM,代码似乎是正确的,除了应删除整个try .. catch
块。唯一的标志应该是LOAD_FLAGS_BYPASS_CACHE
,以确保您没有得到缓存的响应。