Chrome 扩展逻辑不工作

Chrome extension logic is not wοrking

我已经设法使 Chrome 扩展程序的大部分正常工作,但有一个问题我无法解决。

如果需要,您可以获取它 here 并将其作为解压扩展加载。

加载后是这样的

  1. 系统会提示您他们需要在选项页面上输入 URL。

  2. 你在选项页面按要求输入一个URL(例如http://example.com)点击保存,然后点击工具栏的图标就可以看到网页出现在弹出窗口中。

  3. 如果你再去选项页面中去掉URL并点击保存,那么弹窗就不会显示他们一开始看到的原始提示页面了。

我认为这段代码(来自 popup.js)有问题,但我不明白为什么它不起作用。

var url = localStorage.url;
var alturl = chrome.extension.getURL("need-to-enter-url.html");
var element = document.getElementById("testerURL");

if (url != undefined || url != null) {

element.src = url;

} else {

element.src = alturl;
};

当你 "remove" url 你实际上是在保存一个空字符串。 localStorage.url = "" 所以你的值检查失败了。我还建议调整 if 逻辑以使其更清晰。

使用这样的东西:

if (url === undefined || url === null || url === "") {
    element.src = alturl;
} else {
    element.src = url;
}

您可以选择依赖 JavaScript's truthiness

if (url) {
    element.src = url;
} else {
    element.src = alturl;
}