Связь между изолированными мирами (расширение js и веб-страница js) в расширении chrome - PullRequest
1 голос
/ 08 декабря 2011

Как вы, возможно, знаете, js-файлы на расширениях и страницах chrome не могут напрямую обращаться друг к другу и работают в изолированных мирах.

Однако я хочу получить доступ к некоторым функциям на странице и вызвать эти функциииз плагина.

И я не хочу делать свою версию этих функций.

Мне интересно, возможно ли это ... Буду признателен за все ответы.

РЕДАКТИРОВАТЬ : Функции находятся на фоновой странице.Это расширение действия браузера.

больше информации: По сути, у меня есть контекстное меню, которое создает вкладку для отправки URL-адреса на страницу.однако повторное открытие страницы приводит к появлению множества вкладок, а открытие такого количества страниц требует времени.Поэтому я готов вызвать функцию javascript на странице непосредственно из расширения, если уже открыт один экземпляр страницы.И у меня есть доступ к странице с разрешениями.

TL; DR : нужен способ вызова функции JavaScript на странице (без локального копирования) из расширения.

1 Ответ

3 голосов
/ 11 декабря 2011

Если вы знаете идентификатор вкладки страницы, функцию которой вы хотите вызвать, вы можете использовать chrome.tabs.update(tabId, {url: 'javascript:functionNameHere()'}); со своей страницы расширения. Это работает, потому что javascript: URL-адреса сопоставлены с выполнением сценария в основном (то есть на странице, не изолированном) мире.

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