Chrome扩展程序:contextMenus.create:无效的网址格式

时间:2018-05-05 03:31:32

标签: google-chrome-extension

尝试制作一个非常简单的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,它会按预期工作。

1 个答案:

答案 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

    });
  }
});