Расширение Chrome: contextMenus.create: неверный шаблон URL - PullRequest
0 голосов
/ 05 мая 2018

Попытка сделать очень простое расширение 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, заключается в том, что я не сопоставил шаблон с URL-адресом subreddit должным образом, но я очень старался следовать инструкциям по форматированию на странице Google Match Patterns .

Полная ошибка: не проверена runtime.lastError при запуске contextMenus.create: недопустимый шаблон URL-адреса '*: //*reddit.com/r*'

Я немного косоглазый, пытаясь увидеть свою ошибку. Спасибо.

Редактировать: если я закомментирую targetUrlPatterns, он будет работать как положено.

1 Ответ

0 голосов
/ 07 мая 2018

Ваш шаблон URL должен быть

"*://*.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

    });
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...