Я согласен с ответом @imiaou: судя по документам Apple, кажется, нет способа сделать это: (.
Поскольку мне нужно было обнаружить изменения вкладок для моего расширения (которое я переношу из Chrome), я сделал следующий обходной путь на основе опроса, который, кажется, работает нормально (на моей глобальной странице):
var prevActiveTab;
setInterval("poorMansOnTabChange()", 1500); //poll every 1.5 sec
function poorMansOnTabChange() {
var curTab = safari.application.activeBrowserWindow.activeTab;
if (curTab != prevActiveTab) {
prevActiveTab= curTab;
console.log("active tab changed!");
//do work here
}
}
Меня не устраивает постоянный опрос браузера, но я не вижу другого выхода, пока Apple не добавит поддержку этих событий табуляции. Если ваше расширение может жить с относительно уменьшенной задержкой запуска события переключения вкладок, то это может быть разумным обходным решением (максимальная задержка 1,5 с приемлема для моего расширения, и это не похоже на замедление работы браузера).