0

我目前正在开发 Safari 5 的扩展,并且我想在设置更改时运行监听器功能。苹果为此提供了一个例子,但它对我不起作用。我目前在我的全局 html 文件中有这个监听器函数:

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

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

我希望有人能帮助我。有人知道我做错了什么吗?

4

1 回答 1

4

我相信您需要在函数中包含“事件”作为参数,所以它看起来像这样:

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

但是,也就是说,它对我来说也不能正常工作(有或没有参数),所以我可能错了。有趣的是,每次我更改字段或单击此 stackoverflow 表单上的按钮时,我的警报(类似于您的警报)都会触发,即使我没有更改我的设置。完全奇怪。

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

safari.extension.settings.addEventListener("change",numberChanged,false);
于 2010-06-13T18:46:19.073 回答