MS Edge api错误“未定义浏览器”

问题描述

我正在尝试为新的Microsoft Edge浏览器构建扩展。加载解压后的扩展程序后,出现此错误

未捕获的ReferenceError:未定义浏览器

我已经阅读了Microsoft Edge文档,其中所有扩展API都位于browser名称空间下。

我在manifest.json文件中包含了存储权限。这是我的manifest.json文件中的代码

{
  "manifest_version": 2,"name": "Demo","author": "Plaban Kumar Mondal","description": "Demo","version": "1.0.0","icons": {
    "128": "icon128.png","48": "icon48.png","16": "icon16.png"
  },"browser_action": {
    "default_icon": {
      "48": "icon48.png","16": "icon16.png"
    },"default_popup": "popup.html"
  },"options_page": "options/options.html","permissions": ["activeTab","storage"]
}

这是我使用browser名称间的javascript文件

const checkBoxes = document.querySelectorAll("input[type='checkBox']");

checkBoxes.forEach((checkBox) => {
  return checkBox.addEventListener("change",() => {
    if (checkBox.changed) {
      browser.storage.local.set({ [checkBox.name]: true },() => {
        browser.storage.onChanged.addListener(() => console.log("true"));
      });
    } else {
      browser.storage.local.set({ [checkBox.name]: false },() => {
        browser.storage.onChanged.addListener(() => console.log("changed to false"));
      });
    }
  });
});

我的代码有什么问题?

解决方法

const checkboxes = document.querySelectorAll("input[type='checkbox']");

checkboxes.forEach((checkbox) => {
  return checkbox.addEventListener("change",() => {
    if (checkbox.changed) {
      chrome.storage.local.set({ [checkbox.name]: true },() => {
        chrome.storage.onChanged.addListener(() => console.log("true"));
      });
    } else {
      chrome.storage.local.set({ [checkbox.name]: false },() => {
        chrome.storage.onChanged.addListener(() => console.log("changed to false"));
      });
    }
  });
});

For chromium-based edge,the browser will support the above code.