我正在开发Safari 5的扩展程序,我希望每当设置更改时都运行一个监听器功能。 Apple为此提供了一个示例,但它对我不起作用。我目前在我的全局html文件中有这个监听器功能:
function numberChanged()
{
if(event.key == "number")
alert("Number has changed!");
}
safari.self.addEventListener("change", numberChanged, false);
我希望有人可以帮助我。有人知道我做错了吗?
答案 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);