Связь ч / б файлов JavaScript через сообщение Post/Dispatch в расширении safari, как в расширении chrome
Мы собираемся разработать расширение Safari. У нас есть расширение Chrome.
И мы хотим объединить тот же код в расширении сафари, есть ли возможность сделать это.
Но в соответствии со структурой Chrome, Chrome использует Background Js для связи с Addon и внутренним JS. Через chrome.runtime.sendMessage. chrome.runtime.sendMessage({Можем ли мы использовать что-то подобное в Расширении сафари, Фоновом файле, который может обрабатывать все сообщения?
Мы можем общаться через Post Messaging/Dispatch Message;
Дополнение /Global =>> Внедренный скрипт. =>> Надстройка / Глобальный файл.
Но мы хотим общаться между файлами JavaScript (загруженными с помощью Global/Popover Html File) через Post/Dispatch Messaging, как в Chrome (chrome.runtime.sendMessage).
Local.JS = >> BackGruound.Js = >> Local.JS
BackGruound.Js => Content.Js = >> глобальный.
1 ответ
У Apple есть руководство по преобразованию расширений Chrome в расширения Safari:
Если ваше расширение Chrome использовало действия браузера или страницы, используйте элементы панели инструментов в Safari. Если вы использовали всплывающие окна в Chrome, используйте всплывающее окно в Safari. Если вы использовали фоновую страницу, используйте глобальную страницу в Safari. Вы также можете изменить некоторые части вашего пользовательского интерфейса во время выполнения - например, вы можете отключить элементы панели инструментов и добавить элементы контекстного меню.
События, которые происходят в Safari, основаны на системе событий DOM, описанной в Событиях объектной модели документа и UIEvents. Чтобы настроить прослушиватель событий, вызовите метод addEventListener для объекта, который должен прослушивать событие. Любой экземпляр SafariEventTarget или его подклассов может зарегистрировать прослушиватели событий. По соображениям безопасности вы можете отправлять сообщения только в пределах своего собственного добавочного номера.
API Safari разделен на две части: уровень веб-контента, который работает внутри области веб-контента, и уровень приложения, который выходит за его пределы. Для связи между скриптами, работающими в разных слоях, используйте сообщения. В Safari нет разницы между передачей кратковременных сообщений и долгосрочными соединениями; Вы используете одни и те же методы для обоих.
Чтобы отправлять сообщения между глобальной страницей и внедренными сценариями, вы должны использовать сообщения и прокси Safari.