如何在safari中获取关闭标签?

时间:2012-03-14 15:37:28

标签: javascript safari tabs safari-extension


我正在捕捉标签的“关闭”事件,但我怎么能关闭哪个标签?

safari.application.addEventListener("close", function(e){
     // all e.target values are undefined, which is not helpful..    
},true)

你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在捕获事件时,e.target(关闭的选项卡)的属性未定义。我猜你正在使用类似console.log(e.target)的东西,然后在控制台中检查记录的对象。您正在看到未定义的属性,因为事件已经完成传播。

请改为尝试:

safari.application.addEventListener("close", function (e) {
    if (e.target instanceof SafariBrowserTab) {
        console.log(e.target.title, e.target.url);
    }
}, true);

您将看到标签的属性仍然在事件捕获时定义,因此您可以将它们与先前存储的值进行比较;或者,如果您之前已将所需选项卡分配给变量,您甚至可以将e.target本身与该变量进行比较。