我试图在progressListener中捕获pageLoad事件,在onLocationChange中我检查新页面的URI,如果URI = about:blank我得到了
错误:组件返回失败代码:0x80004005(NS_ERROR_FAILURE)[nsIURI.host]
据我所知,这个URI根本没有主机。
如何在没有原始解析和异常捕获的情况下检查主机是否可用?有没有传统方法来检查属性是否存在?
答案 0 :(得分:0)
最好的办法是过滤某些协议(过滤scheme
)。在您关注的协议的情况下,最好使用白名单。
答案 1 :(得分:0)
一般情况下,如果不进行try / catch,就无法确定,但目前nsIStandardURL
是唯一一种拥有主机的URI。
答案 2 :(得分:0)
当我遇到这个问题时,我的解决方案是:
表示观察者标志aWebProgress.NOTIFY_LOCATION
aWebProgress.addProgressListener(this.listener, aWebProgress.NOTIFY_LOCATION);
在我aWebProgress.NOTIFY_LOCATION
之前,你有一个例外