问题描述
我正在尝试为新的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.