Вызов расширения Google Chrome из Javascript - PullRequest
4 голосов
/ 29 сентября 2011

Существует отличное расширение под названием Blipshot , которое делает скриншоты страницы.Мне нужно вызвать расширение с помощью javascript уровня страницы, а не щелкнуть его значок.Это возможно?

Ответы [ 2 ]

4 голосов
/ 29 сентября 2011

Это возможно только в том случае, если расширение предоставляет интерфейс для этого. Расширения работают в изолированной среде, поэтому у вас нет прямого доступа ни к одной из их функций.

Ближе всего они получают скрипты контента, которые имеют доступ к DOM. Из-за этого вы можете общаться с использованием событий, но очевидно, что расширению потребуется настроить для них обработчики событий, поэтому оно полностью зависит от расширения.

4 голосов
/ 29 сентября 2011

Вы не можете вызывать любые методы расширения из веб-страницы.Тем не менее, можно внедрить скрипт содержимого в веб-страницу и использовать sendMessage и onMessage, или onConnect и connect.

. Чтобы изменить расширение: Посетите страницу chrome://extensions,и включите режим разработчика.Распакуйте расширение и / или посетите каталог расширения.Отредактируйте файл manifest.json и добавьте необходимые строки (см. здесь ).

Добавьте прослушиватель событий на фоновой странице.Добавьте опросщик в скрипт контента, например:

// Content script
var poller = window.setInterval(function() {
   if (document.documentElement.getAttribute('extensionCalled')) {
       chrome.extension.sendMessage({"anyname": "anything"}, function() {
           /*optional callback function.*/alert("Something happened")
       });
       clearInterval(poller);
   }
}, 200);

// Background
chrome.extension.onMessage.addListener(function(request, sender, callback) {
    if (request.anyname == "anything") {
        function_logic_here();
        //Optionally, callback:
        callback();
    }
});

См. Также

  • Расширение Chrome - получение исходного сообщения Gmail - Использование событий DOM для связи междустраница и расширение (рекомендуется)
  • MDN: postMessage - может использоваться для связи между страницей и расширением (этот метод может вызвать конфликты, когда сама страница также используетmessage события).

Ссылки:

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