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

Chrome extension insert content script в действии браузера

Я пытаюсь сделать в основном расширение хеллера элемента highlighter. Процедура:  - щелкните значок браузера  - нажмите на страницу  - hightlight элемент, нажатый

У меня возникают проблемы при запуске сценариев контента при действии браузера с помощью manifest_version: 2 Когда я проверяю всплывающее окно, которое появляется, он говорит:

Отказано от выполнения inline script, поскольку оно нарушает следующие Политика политики безопасности содержимого: "script -src" self "chrome-extension-resource:" (popup.html: 5).

Что такое inline script в popup.html и script не работает

У меня есть:

manifest.json:

{
   "browser_action": {
      "default_icon": "images/icon.gif",
      "default_popup": "popup.html"
   },
   "manifest_version": 2,
   "description": "MEH!",
   "name": "My First Extension",
   "permissions": [
      "tabs", "http://*/*", "https://*/*"
   ],
   "version": "0.1"
}

popup.html:

<html>
  <head>
  </head>
  <body>
    <script>
      chrome.tabs.executeScript(null,{
        code:"document.body.style.backgroundColor='red'"
      });
    </script>
    <div id='msg' style="width:300px">...</div>
  </body>
</html>

Любая помощь будет очень оценена

4b9b3361

Ответ 1

Оказывается, я не мог правильно прочитать ошибку, пока не увидел ее здесь

Очевидно, что v2 не позволяет вам иметь встроенные скрипты, поэтому вам просто нужно

src="path_to_the_file.js"

Ответ 2

В дополнение к @tak3r answer и @Doug комментарий:

Внутренние скрипты необходимо изменить на внешние скрипты.

Move:

<script>
  chrome.tabs.executeScript(null,{
    code:"document.body.style.backgroundColor='red'"
  });
</script>

В новый файл с именем main.js и удалите теги <script></script>

Включите в <head></head> вашего HTML

следующее:
<script type="text/javascript" src="main.js"></script>