2013-03-29 1 views
2

Я настраиваю веб-страницу, на которой пользователь может установить наше расширение. Я хочу сказать «поздравления», когда пользователь сможет его установить.Открывает ли Safari сообщение при установке расширения?

Я не могу найти что-нибудь послушать, чтобы обнаружить это. Предоставляет ли Safari какое-либо сообщение при установке расширения?

ответ

2

Я сделал что-то подобное раньше, просто помещая код в глобальной странице, и с помощью пункта скрытых настроек, чтобы убедиться, что он будет работать только в первый раз:

if (!safari.extension.settings.hasRun) { 
    safari.extension.settings.hasRun = true; 
    alert('Congratulations!'); 
} 

Одна вещь, чтобы быть в курсе что любые введенные скрипты вводятся только на вновь загруженные страницы или после обновления. Поэтому немного сложнее использовать приведенный выше код для отправки сообщения на вложенный скрипт для изменения содержимого текущей открытой страницы. Вы должны либо принудительно обновить, или же просто открыть вкладку с приветственным сообщением:

if (!safari.extension.settings.hasRun) { 
    safari.extension.settings.hasRun = true; 
    safari.application.openBrowserWindow(); 
    safari.application.activeBrowserWindow.activeTab.url = "http://www.example.com/welcome"; 
} 
+0

Спасибо, легкий и умный :) Интересно, если в какой-то мере можно сообщение страницы из глобальной страницы поэтому, чтобы избежать обновления. Я пытаюсь опубликовать сообщение на странице с safari.application.activeBrowserWindow.activeTab.page.dispatchMessage, похоже, что оно отправлено, но я не могу его прослушать из js моей страницы (попытался window.addEventListener и документ .addEventListener, но похоже, что он не работает). – Pietro

+0

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