2010-06-13 10 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!"); 
} 

然而,这么说,它不能正常工作,我是(有或没有帕拉姆),所以我可能是错的。有趣的是,每当我更改字段或单击此计算器表单上的按钮时,即使我没有更改我的设置,我的警报(类似于您的警报)也会触发。完全怪异。

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

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