您好我想为Chrome创建一个非常简单的扩展程序,只需单击一下即可创建书签到默认文件夹。所以我使用这个服务创建了一个扩展:
http://sandbox.self.li/bookmarklet-to-extension/
现在,我有这个json.manifest文件
{
"background": {"scripts": ["background.js"]},
"browser_action": {
"default_icon": "icon-128.png",
"default_title": "1ClickBookmark"
},
"name": "1ClickBookmark",
"description": " - Created with http://blog.self.li",
"homepage_url": "http://blog.self.li/post/16366939413/how-to-convert-bookmarklet-to-chrome-extension",
"icons": {
"16": "icon-16.png",
"48": "icon-48.png",
"128": "icon-128.png" },
"permissions": [
"tabs",
"bookmarks",
"http://*/*",
"https://*/*"
],
"version": "0.1",
"manifest_version": 2
}
我将“书签添加到权限”
和javascript文件:
(function(){
chrome.bookmarks.create({
'parentId': null,
'title': 'AAAAAAA',
'url': 'http://www.google.com/'});
alert("Bookmark added!");
})();
ParentId = null指向“其他书签”的根,没关系。
问题是在Console中我捕到一个异常: “无法为chrome.bookmarks.create调用方法'创建'未定义'
但是,如果我直接在后台控制台中运行该脚本,它可以正常工作。 在后台控制台中 - 在标准控制台中工作失败。
为什么?
任何建议都将不胜感激。感谢
答案 0 :(得分:0)
如果您希望脚本在其他页面的上下文中运行,则必须使用content scripts。就目前而言,您的扩展程序仅在后台页面上“运行”。因此,您的背景页面可以访问chrome.*
对象,但在注入内容脚本之前,其他页面不会访问。
答案 1 :(得分:-1)
您是否在向manifest.json添加权限后尝试重新安装扩展程序?