Проблема с расширением Google Chrome: popup.html мешает выполнению скрипта в background.html - PullRequest
1 голос
/ 03 апреля 2011

Я изучаю, как расширить Google Chrome, и столкнулся со следующей проблемой:

У меня есть следующий файл манифеста:

{
    "name": "My First Extension",
    "version": "1.0",
    "description": "The first extension that I made.",
    "background_page": "background.html",
    "browser_action": {
        "default_icon": "icon.png", 
        "popup": "popup.html"
     },
    "permissions": [
    "tabs",
        "http://*/*",
        "https://*/*"
    ]
 }

Мой файл background.html просто добавляет некоторыепростой JavaScript на странице:

<script>
    // Called when the user clicks on the browser action.
    chrome.browserAction.onClicked.addListener(function(tab) {
        chrome.tabs.executeScript(null, {code:"alert(\"hi from background CODE\");"});
    });
</script>

Мой файл popup.html - это просто простой HTML:

<body>
    Sup Playa
</body>

Диалоговое окно из background.html никогда не отображается.popup.html работает как положено.

Однако, когда я закомментирую popup.html из файла манифеста, скрипт в background.html работает.

Что я делаю неправильно?Почему диалоговое окно и всплывающее окно не отображаются?

1 Ответ

4 голосов
/ 03 апреля 2011

Как сказано в документах :

onClicked Событие не будет запущено, если в браузере есть всплывающее окно.

Таким образом, если вы назначите html-файл вашему всплывающему окну "popup": "popup.html" (а не просто кнопке без тела), событие onClicked не будет запущено.

Вы можете просто поместить свой код прямо в popup.html (он имеет те же привилегии, что и фоновая страница), если вы хотите, чтобы что-то выполнялось при каждом его открытии:

chrome.tabs.executeScript(null, {code:"alert(\"hi from background CODE\");"});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...