Задать вопрос

Как отследить щелчок левой кнопки мыши по вкладке в Firefox SDK?

Я написал расширение для Firefox, которое подсвечивает предыдущую вкладку. От одного из пользователей появилось предложение добавить возможность переходить на предыдущую вкладку щелчком левой кнопки мыши по активной вкладке. Я перекопал Firefox SDK, но так и не понял, как можно это отследить.

Можно подписаться на события вкладки: открыли вкладку, закрыли, стала активной и т.д. Но если вкладка уже активная, щелчок по ней не генерирует ни одного из этих событий: https://developer.mozilla.org/en-US/Add-ons/SDK/Hi...
  • Вопрос задан
  • 2437 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
driessen
@driessen Автор вопроса
Мне дал ответ юзер okkamas_knife с форума mozilla-russia, за что ему большое спасибо. Вот приведённый им код:

function TabClick(event){
if (event.button != 0) return;
          event.preventDefault();
          event.stopPropagation();
alert("test")
};
addEventListener("click", TabClick, false, gBrowser.mTabContainer);


В High-Level SDK объект TabContainer можно получить с помощью tabs/utils. Мой недоделанный кусок кода:

var window_utils = require("sdk/window/utils");
var tabs_utils = require("sdk/tabs/utils");

function TabClick(event) {
    if (event.button != 0) return; // 0 - клик левой кнопкой мыши
    event.stopPropagation();
    var window = window_utils.getMostRecentBrowserWindow();
    var active_tab = tabs_utils.getActiveTab(window);
    var tr = event.target; // после клика по табу в таргете будет соответственно таб
}

// Функцию надо повесить на onload окна
function AddLsnr() {
    var win = window_utils.getMostRecentBrowserWindow();
    var container = tabs_utils.getTabContainer(win);
    container.addEventListener("click", TabClick, false);
}


Кому интересно, ссылка на расширение: https://addons.mozilla.org/ru/firefox/addon/prev_t...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы