chrome.tabs.executeScript не работает? - PullRequest
18 голосов
/ 14 февраля 2011

Я пытаюсь научиться использовать chrome.tabs.executeScript commend.Я создал простое расширение с действием браузера.Мой файл background.html в настоящее время выглядит следующим образом:

<html>
<script>
    chrome.browserAction.onClicked.addListener(function(tab) {
        chrome.tabs.executeScript(null,{code:"document.body.bgColor='red'"});
        chrome.tabs.executeScript(null, {file: "content_script.js"});
    });
</script>
</html>

Файл "content_script.js" содержит document.body.bgColor = 'red'.

При нажатии кнопки действия браузера ничего не происходитслучается.Очевидно, что я упускаю что-то очень простое.

Я проверил в файле console.log, что действительно элемент управления достигает вызовов chrome.tabs.executeScript при нажатии действия браузера.В противном случае я не уверен, как вообще проверить, запущен ли код моего скрипта контента (похоже, нет; console.log, который я вставил в скрипт контента, не имеет никакого эффекта, но, возможно, он не должен иметь его, даже если скрипт запущен успешно).

Ответы [ 3 ]

37 голосов
/ 14 февраля 2011

Убедитесь, что у вас есть права доступа к домену и вкладке в манифесте:

"permissions": [
    "tabs", "http://*/*", "https://*/*"
]

Затем, чтобы изменить цвет тела, попробуйте:

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

Также имейте в виду, что скрипты содержимого не вставляются ни в какие chrome:// или страницы галереи расширений.

11 голосов
/ 26 декабря 2013

Для тех из вас, у кого все еще есть проблемы, вам необходимо перезагрузить разрешения расширения в Chrome.

Перейдите на chrome://extensions, выделите ваше расширение и нажмите «перезагрузить».Убедитесь, что ваши разрешения были обновлены, нажав на ссылку разрешений рядом с вашим расширением.

3 голосов
/ 10 августа 2017

Вы на самом деле не нуждаетесь в разрешении 'tabs' для executeScript и не хотите его иметь.

"permissions": [
  "http://*/*", 
  "https://*/*"
]

должно быть достаточно

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