This is my contextMenus.create function which is throwing the cannot read property of create in undefined error.
chrome.contextMenus.create({
"title": "Buzz This",
"contexts": ["page", "selection", "image", "link"],
"onclick" : clickHandler
});
I also have this in the same content script:
chrome.contextMenus.onClicked.addListener(onClickHandler);
// The onClicked callback function.
function onClickHandler(info, tab) {
window.alert(info.srcUrl);
};
This is my 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"
]
}
All I want to do is create a context menu in a content script. Can anyone see the problem?
This is my contextMenus.create function which is throwing the cannot read property of create in undefined error.
chrome.contextMenus.create({
"title": "Buzz This",
"contexts": ["page", "selection", "image", "link"],
"onclick" : clickHandler
});
I also have this in the same content script:
chrome.contextMenus.onClicked.addListener(onClickHandler);
// The onClicked callback function.
function onClickHandler(info, tab) {
window.alert(info.srcUrl);
};
This is my 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"
]
}
All I want to do is create a context menu in a content script. Can anyone see the problem?
Share Improve this question asked May 31, 2015 at 0:33 Dave GordonDave Gordon 1,8354 gold badges30 silver badges53 bronze badges1 Answer
Reset to default 17You cannot use most chrome apis in content scripts. Instead, create a background page and create the context menu there when it receives a message from the content script. When the background page receives the click event, send a message to the content script.
https://developer.chrome.com/extensions/messaging