没有属性的NS_ERROR_FAILURE

时间:2011-02-11 13:29:40

标签: firefox-addon xpcom

我试图在progressListener中捕获pageLoad事件,在onLocationChange中我检查新页面的URI,如果URI = about:blank我得到了

错误:组件返回失败代码:0x80004005(NS_ERROR_FAILURE)[nsIURI.host]

据我所知,这个URI根本没有主机。

如何在没有原始解析和异常捕获的情况下检查主机是否可用?有没有传统方法来检查属性是否存在?

3 个答案:

答案 0 :(得分:0)

最好的办法是过滤某些协议(过滤scheme)。在您关注的协议的情况下,最好使用白名单。

答案 1 :(得分:0)

一般情况下,如果不进行try / catch,就无法确定,但目前nsIStandardURL是唯一一种拥有主机的URI。

答案 2 :(得分:0)

当我遇到这个问题时,我的解决方案是: 表示观察者标志aWebProgress.NOTIFY_LOCATION

aWebProgress.addProgressListener(this.listener, aWebProgress.NOTIFY_LOCATION);

在我aWebProgress.NOTIFY_LOCATION之前,你有一个例外