我正在进行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);
}

最佳答案

使用一个简单的条件

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
}

10-07 17:31