我正在尝试创建一个Chrome扩展程序,用于清理URL并在新选项卡中打开该URL。但是我一直收到与this (content_script error)相同的错误。我遵循了指示,但我相信我只是不明白我哪里出错了。这是完整的代码:
的manifest.json
{
"name": "Link scrub",
"description": "Removes redirectors from links",
"version": "0.1",
"permissions": ["contextMenus", "tabs"],
"background_page" : "background.html"
"content_scripts": [{
"js" : ["linkscrub.js"]
}];
}
linkscrub.js
chrome.contextMenus.create({
"title" : "Link Trap",
"type" : "normal",
"contexts" : ["link"],
"onclick" : modifyLink
});
function modifyLink(info, tab) {
chrome.extension.sendRequest({
"nurl" = info.linkURL,
function(response) {
console.log("linkscrub failed: " + response.farewell)
}
});
}
background.html
<script>
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
link = "";
link = sender.nurl;
link = link.match("url=\b(.*?)&link");
chrome.tabs.create({
"url": link,
"selected" : false
});
if(chrome.extension.lastError)
sendResponse({farewell : chrome.extension.lastError.message});
else
sendResponse({farewell : "Success")};
});
<script>
答案 0 :(得分:3)
它会抛出错误,因为您无法在内容脚本中使用chrome.contextMenus.*
API。
此任务不需要内容脚本,只需将linkscrub.js
中的所有内容移动到您的后台页面中(您也不需要这些请求)。