chrome.bookmarks.create抛出错误“无法调用方法'创建'未定义”

时间:2014-01-26 19:12:47

标签: google-chrome-extension

您好我想为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调用方法'创建'未定义'

但是,如果我直接在后台控制台中运行该脚本,它可以正常工作。 在后台控制台中 - 在标准控制台中工作失败。

为什么?

任何建议都将不胜感激。感谢

2 个答案:

答案 0 :(得分:0)

如果您希望脚本在其他页面的上下文中运行,则必须使用content scripts。就目前而言,您的扩展程序仅在后台页面上“运行”。因此,您的背景页面可以访问chrome.*对象,但在注入内容脚本之前,其他页面不会访问。

答案 1 :(得分:-1)

您是否在向manifest.json添加权限后尝试重新安装扩展程序?