TypeError document.querySelector(...) 为空

问题描述 投票:0回答:1

我正在做 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);
}
javascript firefox firefox-addon firefox-addon-sdk
1个回答
11
投票

使用简单的条件

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
}
© www.soinside.com 2019 - 2024. All rights reserved.