我正在尝试创建书签(在这种情况下为chrome)
我的代码是:
function onCreated(node) {
console.log(node);
}
var createBookmark = browser.bookmarks.create({
title: "bookmarks.create() on MDN",
url: "https://developer.mozilla.org/Add-ons/WebExtensions/API/bookmarks/create"
});
createBookmark.then(onCreated);
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<p>text example</p>
</body>
</html>
在chrome中运行代码时出现此错误:
Uncaught ReferenceError: browser is not defined
我运行其他代码:
function onFulfilled(bookmarkItems) {
if (bookmarkItems.length) {
console.log("active tab is bookmarked");
} else {
console.log("active tab is not bookmarked");
}
}
function onRejected(error) {
console.log(`An error: ${error}`);
}
function checkActiveTab(tab) {
var searching = browser.bookmarks.search({url: tab.url});
searching.then(onFulfilled, onRejected);
}
browser.browserAction.onClicked.addListener(checkActiveTab);
来自:here,我遇到了同样的错误。
更新问题:
此时我的manifest.json:
{
"name": "add site random",
"version": "1.0",
"description": "this is my first extension in production",
"manifest_version": 2
}
有什么主意,因为我遇到此错误,我正在尝试创建一个文件夹,并根据代码在书签中添加一个网站?
答案 0 :(得分:0)
通过最近的修改并查看您的manifest.json
,您似乎缺少了几个permissions
字段,
因此像这样更新您的manifest.json
,(然后重新打包一个新的扩展名)
{
"name": "add site random",
"version": "1.0",
"description": "this is my first extension in production",
"manifest_version": 2,
"background": {
"scripts": ["YOUR_BACKGROUND_SCRIPT_NAME.js"]
},
"permissions": [
"notifications",
"activeTab"
]
}
希望这会有所帮助!
答案 1 :(得分:0)
除了manifest
文件中缺少脚本调用之外,在检查了注释的要点链接后,该脚本调用似乎已经解决(很好的捕获方法@DavidR!),但是,问题代码的两个版本仍然在manifest
的{{1}}块中缺少对html
文件的引用,例如。 Mozilla建议的类似<head>
之类的内容可能只允许您跳过当前的问题。
为完整性起见,以下是我对您对该<link rel="manifest" href="/manifest.webmanifest">
文件所做的操作...
index.html
...,我还将建议将<!DOCTYPE html>
<html>
<head>
<link rel="manifest" href="/manifest.webmanifest">
<title>test</title>
</head>
<body>
</body>
</html>
文件重命名为具有manifest
扩展名,因为与规范相关的reasons。