2

Я ищу способ отправить данные (или прямо редактировать) DOM/HTML с исходной всплывающей подсказки из сценария содержимого. Мой скрипт запускается с помощью следующей строки:Доступ к скрипту расширения расширения Chrome для расширения кадра

chrome.tabs.executeScript(null, {file: "script.js"}); 

Я ищу способ доступа HTML оригинального Popup так что я могу писать и обновлять журнал о том, что script.js делает динамически.

Если вам нужна дополнительная информация, я буду более чем счастлив отредактировать это сообщение.

Большое спасибо за помощь!

+0

Я смущен вашим вопросом. Не могли бы вы отредактировать свой пост и сделать его более понятным? Похоже, вы хотите отправить данные со всплывающей страницы на .. что? –

ответ

1

Существует разделение безопасности между контекстами расширения и контекстами сценария контента. Вы не можете просто ссылаться на window всплывающего окна из сценария контента (в отличие от getBackgroundPage() или getViews() из контекста расширения, который начинается с взлома).

Правильный способ связи между двумя будет Messaging (вы можете отправлять сообщения из сценария контента через runtime.sendMessage, а всплывающее окно будет в числе получателей).

Важно помнить, что всплывающее окно может закрываться, а затем его состояние будет потеряно, и оно не будет прослушиваться. В этом случае вы либо хотите использовать фоновый скрипт как «прокси» между ними, либо использовать некоторое постоянное хранилище, например chrome.storage.

Наконец, Messaging/Storage поддерживает только JSON-сериализуемую полезную нагрузку. Это означает, что вы не можете отправлять узлы DOM, среди прочего. Вам необходимо сообщить только минимальные данные, необходимые для ваших целей, и создать DOM во всплывающем окне.

+0

Большое спасибо, я проверю это. Я столкнулся с другой проблемой; как я могу отправить данные в сценарий содержимого FROM из исходного окна перед запуском? Я хочу, чтобы в окне были параметры конфигурации, которые сможет использовать script.js. – Ferdz

+1

[Этот вопрос] (http://stackoverflow.com/q/17567624/934239) должен предоставить достаточные ответы. – Xan

+0

В дополнение к вышесказанному, если конфигурация не зависит от вкладок, подумайте о том, чтобы сохранить ее в 'chrome.storage'. – Xan

Смежные вопросы