TypeError document.querySelector(...)为null

时间:2014-12-03 14:17:34

标签: javascript firefox firefox-addon firefox-addon-sdk

我正在进行FF扩展,我遇到了障碍。这就是我所拥有的:

var canLink = document.querySelector('link[rel="service"]').href;

这找到了一个rel =“service”的链接,效果很好。但是,如果页面没有与rel = service的链接,它将返回null并突破程序的其余部分。如何才能使它如果canLink = null,它不会中断?

有没有办法捕捉到这个错误?

这是文件。第12行是self.port.emit,它工作正常。

//Get link if it exists
var elem = document.querySelector('link[rel="service"]').href,
canLink = elem ? elem.href : "";

if (canLink){
    self.port.emit("link", canLink);
}

else {
        canLink = "";
        self.port.emit("link", canLink);
}

1 个答案:

答案 0 :(得分:7)

使用简单的条件

var elem = document.querySelector('link[rel="service"]');
var canLink = elem ? elem.href : "";

现在,在您的代码中,您可以检查代码中""(空字符串)并采取其他措施,例如

if(canLink !== "") {  // could be just written as if(canLink){ ... }
   // do something with the canLink now
}