Chrome扩展程序无法读取属性在contextMenus.create中创建未定义

时间:2015-05-31 00:33:18

标签: javascript google-chrome-extension

这是我的contextMenus.create函数,它正在抛出 无法读取未定义错误中的create属性。

chrome.contextMenus.create({
   "title": "Buzz This",
   "contexts": ["page", "selection", "image", "link"],
   "onclick" : clickHandler
   });

我在相同的内容脚本中也有这个:

chrome.contextMenus.onClicked.addListener(onClickHandler);

// The onClicked callback function.
function onClickHandler(info, tab) {
     window.alert(info.srcUrl);    
};

这是我的manifest.json

{
  "name": "ReportIt",
  "version": "0.0.1",
  "manifest_version": 2,

  "default_locale": "en",
  "description": "Immediately Remove and Report",
  "icons": {
   "16": "images/icon-128.png",
   "128": "images/icon-128.png"
   },


   "content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["scripts/contentscript.js"],
    "run_at": "document_end",
    "all_frames": false
    }],

      "permissions": [
      "http://*/*",
      "https://*/*",
      "contextMenus"
      ],

      "content_security_policy": "script-src 'self'; object-src 'self'",
      "web_accessible_resources": 
      [
      "bower_components/angular/*",
      "scripts/background.js"
      ]

    }

我想要做的就是在内容脚本中创建一个上下文菜单。任何人都可以看到这个问题吗?

1 个答案:

答案 0 :(得分:14)

您无法在内容脚本中使用大多数chrome apis。而是在从内容脚本接收消息时创建后台页面并在其中创建上下文菜单。当后台页面收到click事件时,向内容脚本发送一条消息。

https://developer.chrome.com/extensions/messaging