Вопрос:

Проблема с расширением Google Chrome: popup.html мешает выполнению скрипта в background.html

google-chrome-extension

1298 просмотра

1 ответ

678 Репутация автора

Я учусь расширять 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 работает.

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

Автор: Mitya Источник Размещён: 03.04.2011 05:35

Ответы (1)


4 плюса

80673 Репутация автора

Решение

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

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

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

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

chrome.tabs.executeScript(null, {code:"alert(\"hi from background CODE\");"});
Автор: serg Размещён: 03.04.2011 05:49
Вопросы из категории :
32x32