Тема закрыта
Страницы: 1
Код ниже будет сразу же закрывать открываемую вкладку, если их уже открыто четыре штуки. Можно поместить его в инициализацию кастомной кнопки, например.
var tabmail = document.getElementById('tabmail'); var tabMonitor = { onTabOpened: function(aTab, aIsFirstTab, aWasCurrentTab) { if (tabmail.tabInfo.length > 4) { tabmail.closeTab(aTab); } }, onTabTitleChanged: function() {}, onTabSwitched: function() {} } tabmail.registerTabMonitor(tabMonitor);
Разумеется, оттуда его можно легко убрать. И ограничено количество не вкладок с письмами, а вообще вкладок.
Отредактировано luitzen (10-12-2010 15:24:06)
Отсутствует
Вот так ближе к тому, что вы хотите:
var tabmail = document.getElementById('tabmail'); var tabMonitor = { onTabOpened: function(aTab, aIsFirstTab, aWasCurrentTab) { if (aTab.mode.name == 'message' && tabmail.tabInfo.filter( function(element) element.mode.name=='message' ).length > 4 ) { tabmail.closeTab(aTab); } }, onTabTitleChanged: function() {}, onTabSwitched: function() {} } tabmail.registerTabMonitor(tabMonitor);
Если во вкладках уже открыто четыре письма, вновь открываемая вкладка с письмом сразу же закрывается (собственно, вы и не успеете заметить, что она открывалась).
Отредактировано luitzen (10-12-2010 15:25:00)
Отсутствует
Можно и совсем коротко. Правда, при попытке открытия вкладки с письмом будет происходить переключение на первую вкладку, в которой открыто какое-либо письмо.
Код выше рассчитан на помещение в инициализацию кастомной кнопки, а на саму кнопку можно повесить отключение/включение ограничения:
with (document.getElementById('tabmail').tabModes.message) { maxTabs = maxTabs?undefined:4; }
В коде инициализации сделано по-другому, чем в коде при нажатии, по той причине, что на момент инициализации кнопки типы вкладок ещё не «зарегистрированы», хотя, так сказать, подготовлены. Ещё интересно, что если уже открыто большее положенного количество вкладок, следующие будут открываться даже при включенном ограничении.
Вот что можно поглядеть по теме: mailTabs.js, tabmail.xml.
Всё, тема раскрыта, я считаю .
Отсутствует
Тема закрыта
Страницы: 1