2010-06-13 2 views
0

В настоящее время я работаю над расширением для Safari 5, и я хочу запустить функцию прослушивателя всякий раз, когда будут сделаны изменения настроек. Для Apple это пример, но для меня это не работает. В настоящее время у меня есть эта функция слушателя в моем глобальном файле html:Расширение Safari - Как реагировать на изменения настроек?

function numberChanged() 
{ 
    if(event.key == "number") 
     alert("Number has changed!"); 
} 

safari.self.addEventListener("change", numberChanged, false); 

Я надеюсь, что кто-то может мне помочь. Кто-нибудь знает, что я делаю неправильно?

ответ

4

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

function numberChanged(event) 
{ 
    if(event.key == "number") 
     alert("Number has changed!"); 
} 

однако, что сказал, что это не работает должным образом для меня либо (с или без param), поэтому я могу ошибаться. Интересно, что каждый раз, когда я меняю поле или нажимаю кнопку в этой форме stackoverflow, мое предупреждение (похожее на ваше) срабатывает, хотя я не менял настройки. совершенно странно.

обновление: У меня это получилось, наконец. Пример, который предоставляет яблоко, просто неверен. Таким образом, есть две части ответа. Я дал первую часть выше - вам нужно добавить «событие» в качестве параметра вашей функции. вторая часть заключается в том, что addeventlistener должен выполняться на объекте настроек, а не, как показывает вам Apple, используя «я» на странице global.html. поэтому рабочий звонок будет выглядеть следующим образом:

safari.extension.settings.addEventListener("change",numberChanged,false);