Safari扩展 - 如何响应设置更改?

时间:2010-06-13 16:17:46

标签: safari safari-extension

我正在开发Safari 5的扩展程序,我希望每当设置更改时都运行一个监听器功能。 Apple为此提供了一个示例,但它对我不起作用。我目前在我的全局html文件中有这个监听器功能:

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

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

我希望有人可以帮助我。有人知道我做错了吗?

1 个答案:

答案 0 :(得分:4)

我认为你需要在你的函数中包含'event'作为参数,所以它看起来像这样:

function numberChanged(event) 
{
     if(event.key == "number")
         alert("Number has changed!");
}
然而,那说,它对我来说也不适合(有或没有参数),所以我可能错了。有趣的是,每次我更改字段或单击此stackoverflow表单上的按钮时,即使我没有更改我的设置,我的警报(类似于您的警报)也会触发。非常奇怪。

更新:我终于开始工作了。苹果提供的例子是错误的。所以答案分为两部分。我给出了上面的第一部分 - 您需要将'event'作为参数添加到您的函数中。第二部分是addeventlistener必须在设置对象上完成,而不是像apple所示,使用global.html页面中的“self”。所以工作电话看起来像这样:

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