Подтвердить что ты не робот

Расширение Chrome: как открыть ссылку на новой вкладке?

В моей папке Stackoverflow у меня есть stackoverflow.ico и 2 bellow файла. Когда вы импортируете его в Chrome, он показывает значок в адресной строке, но когда я нажимаю на него, Chrome не открывает никаких новых вкладок. Что я делаю неправильно?

manifest.json

{
  "name": "Stackoverflow",
  "version": "1",
  "browser_action":
  {
    "default_icon": "stackoverflow.ico"
  },
  "background":
  {
    "page": "index.html"
  },
  "permissions": ["tabs"],
  "manifest_version": 2
}

index.html

<html>
  <head>
    <script>
      chrome.browserAction.onClicked.addListener(function(activeTab)
      {
        var newURL = "http://stackoverflow.com/";
        chrome.tabs.create({ url: newURL });
      });
    </script>
  </head>
</html>
4b9b3361

Ответ 1

Проблема в том, что вы нарушаете манифест версии 2 content security policy. Исправить все, что вам нужно сделать, это избавиться от встроенного script, в данном случае вашего фона page. Поверните его в фоновый рисунок script следующим образом:

manifest.json

"background":{
  "scripts": ["background.js"]
},

background.js

chrome.browserAction.onClicked.addListener(function(activeTab){
  var newURL = "http://stackoverflow.com/";
  chrome.tabs.create({ url: newURL });
});

Если по какой-то причине вам нужно, чтобы это была страница, просто добавьте script в качестве внешнего файла и объявите его как страницу, как раньше.