TypeError document.querySelector(...)为null

Jas*_*rin 4 javascript firefox firefox-addon firefox-addon-sdk

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

var canLink = document.querySelector('link[rel="service"]').href;
Run Code Online (Sandbox Code Playgroud)

这找到了一个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);
}
Run Code Online (Sandbox Code Playgroud)

Ami*_*oki 8

使用简单的条件

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

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

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