尝试制作一个非常简单的Chrome扩展程序。如果有人右键单击subreddit链接,则会有一个上下文选项将其发送到redditp.com。
background.js
{
function redpts(info,tab) {
var url = info.linkUrl;
console.log("Link " + info.selectionText + " was clicked to be redditp'd.");
var urlp = url.replace(/reddit.com/i, "redditp.com");
chrome.tabs.create({ url: urlp });
}
chrome.contextMenus.create({
"title" : "RedditP That Shizz!",
"type" : "normal",
"contexts" : ["link"],
"targetUrlPatterns": ["*://*reddit.com/r*"],
"onclick" : redpts
});
}
错误chrome throws是我没有正确匹配subreddit URL的模式,但我非常试图遵循' Match Patterns'的格式说明。谷歌页面。
完全错误:运行contextMenus.create时未经检查的runtime.lastError:无效的网址格式' *:// * reddit.com / rt'
我有点睁眼,试图看出我的错误。感谢。
编辑:如果我注释掉targetUrlPatterns,它会按预期工作。
答案 0 :(得分:0)
您的网址格式应为
"*://*.reddit.com/r*
和新的Chrome版本的上下文菜单看起来像是
chrome.contextMenus.create({
"id" : "someuniquerid",
"title" : "RedditP That Shizz!",
"type" : "normal",
"contexts" : ["link"],
"targetUrlPatterns": ["*://*.reddit.com/r*"]
});
chrome.contextMenus.onClicked.addListener(function(e){
if(e.menuItemId == 'someuniquerid') {
chrome.tabs.getSelected(function(tab){
// do you work here
});
}
});