Полезная информация

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№7615-03-2014 19:19:42

Maxut
Участник
 
Группа: Members
Зарегистрирован: 27-02-2011
Сообщений: 30

Re: [CB]Tab Clicking Options

bunda1 пишет:

Копировать информацию о вкладках( Firefox 3.6 + )
Автор: Dumby

Удобный код .Спасибо.
 
                   
у меня (Aurora 28.0a2) не работает этот пункт,

Выделить код

Код:

["адрес и название как BBCode", copySingle.replace("(", '(\'[url="\' + ') + url + ' + \'"]\' + ' + tab + 'label + "[/url]");'], 

а так работает (без кавычек)   url="....+ \'"] 

Выделить код

Код:

 ["адрес и название как BBCode", copySingle.replace("(", '(\'[url=\' + ') + url + ' + \']\' + ' + tab + 'label + "[/url]");'],

Отсутствует

 

№7720-04-2014 23:27:08

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 421
UA: Firefox 28.0
Веб-сайт

Re: [CB]Tab Clicking Options

bunda1 пишет:

Копировать информацию о вкладках( Firefox 3.6 + )
Автор: Dumby
Версия: от 02.05.2013.
Описание: Kод дает возможность копировать разную информацию о открытых табах. Kод добавляет подменю Копировать информацию о табах в контекстное меню вкладки как последний пункт.

Подменю содержит пункты:
Копировать адрес
Копировать название
Копировать адрес иконки
Копировать короткое название
Копировать адрес и название
Копировать адрес и название как BBCode
Копировать адрес и название как HTML
Копировать адреса всех табов
Копировать название всех табов
Копировать адреса и название всех табов
Копировать адреса и название всех табов как BBCode
Копировать адреса и название всех табов как HTML

Лишние пункты в подменю можно просто удалить из кода:
На пример если не нужен пункт Копировать адрес удалите:

Выделить код

Код:

["адрес", copySingle + url + ");"],


Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Очень полезная кнопка, но не хватает одной важной составляющей - выделенного текста: "Копировать адрес,  название и выделенный текст как BBCode".
Возможно, тогда само подменю должно вызываться из Главного контекстного меню, хотя меня бы больше устроило именно из таб меню.
Кроме того - возможно ли сделать так же как копировать - но paste, то есть вставить - на то место, где курсор в поле ввода?
P.S. Дополнительного подпункта меню "Копировать адрес,  название и выделенный текст как BBCode" - не надо, просто вместо "Копировать адрес и название как BBCode" должен быть "Копировать адрес,  название и выделенный текст как BBCode", но если текст не выделен, то это работает как сейчас в "Копировать адрес и название как BBCode"


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№7823-04-2014 22:52:14

etoins srldu
Участник
 
Группа: Members
Зарегистрирован: 23-04-2014
Сообщений: 13
UA: Firefox 28.0

Re: [CB]Tab Clicking Options

difabor пишет:

Очень полезная кнопка, но не хватает одной важной составляющей - выделенного текста: "Копировать адрес,  название и выделенный текст как BBCode".

Нужный пункт Адрес и редактированное название как BBCode

При клике ЛКМ копирует информацию всех вкладок
При клике ПКМ копирует информацию вкладок только из текущей группы вкладок

Выделить код

Код:

// Добавить подменю "Копировать адрес и название как BBCode или" в контекстном меню вкладки, от 09.04.2014. ................................
(function() {
   const tabContextMenu = document.getElementById("tabContextMenu"); 
   
   var separator = tabContextMenu.appendChild( document.createElement("menuseparator") );
   var menu = tabContextMenu.appendChild( document.createElement("menu") );      
   menu.setAttribute("label", "Копировать адрес и название как BBCode или ....");
    
   addDestructor(function() {
      tabContextMenu.removeChild( menu )
      tabContextMenu.removeChild( separator )        
   });      
        
   var array = [     
        { label: "Адрес", arg: 'url'},
        { label: "Название", arg: 'label'},
        { label: "Адрес иконки", arg: 'image'},
        { label: "Название коротко", arg: 'shortTitle'},
        { label: "Адрес и название", arg: 'tabInfo'},
        { label: "Адрес и название как HTML", arg: 'tabInfoHtml'},
        { label: "Адрес и редактированное название как BBCode", arg: 'tabChangedInfoBbcode'},
        { separator: '' },
        { label: "Адреса всех табов", arg: 'allTabsURL'},
        { label: "Название всех табов", arg: 'allTabsLabels'},
        { label: "Адреса и название всех табов", arg: 'allTabsInfo'},
        { label: "Адреса и название всех табов как HTML", arg: 'allTabsInfoHtml'},
        { label: "Адреса и название всех табов как BBCode", arg: 'allTabsInfoBbcode'},
              ];
   var menuPopup = menu.appendChild( document.createElement("menupopup") );              
   array.forEach(function( m ) {
        if ( "separator" in m ) { menuPopup.appendChild( document.createElement("menuseparator") ); return };  
        var mItem = document.createElement("menuitem");
        mItem.setAttribute("label", m.label);
        mItem.arg = m.arg;
        menuPopup.appendChild( mItem );
   });
   addEventListener("click", function(e) {
      var tab = document.popupNode;
      tabContextMenu.hidePopup();
      var tabs = e.button ? gBrowser.visibleTabs : gBrowser.tabs;
      var arg = (e.target.nodeName == "menu") ? "tabInfoBbcode" : e.target.arg;
      
      switch(arg) {
         case "url": var info = tab.linkedBrowser.currentURI.spec; break;            
         case "label": var info = tab.label; break;
         case "image": var info = tab.image; break;
         case "shortTitle": var info = tab.label.slice(0,50) + (tab.label.length > 50 ? ' ......' : ""); break;
         case "tabInfo": var info = buildTabInfo(tab,arg); break;
         case "tabInfoHtml": var info = buildTabInfo(tab,arg); break;
         case "tabInfoBbcode": var info = buildTabInfo(tab,arg); break;
         case "tabChangedInfoBbcode": var text = tab.label; tab.label = custombuttons.promptBox("Измените название вкладки:",null, tab.label)[1]; var info = buildTabInfo(tab,arg); tab.label = text; break;
         case "allTabsURL": var info = Array.map(tabs, function(node) { return node.linkedBrowser.currentURI.spec }).join("\n"); break;
         case "allTabsLabels": var info = Array.map(tabs, function(node) { return node.label }).join("\n"); break;
         case "allTabsInfo": var info = Array.map(tabs, function(node) { return buildTabInfo(node,arg) }).join("\n"); break;
         case "allTabsInfoHtml": var info = Array.map(tabs, function(node) { return buildTabInfo(node,arg) }).join("\n"); break;
         case "allTabsInfoBbcode": var info = Array.map(tabs, function(node) { return buildTabInfo(node,arg) }).join("\n"); break;
      }
      gClipboard.write( info );
      
   }, false, menu );
      

   function buildTabInfo( tab, arg ) {
      var url = tab.linkedBrowser.currentURI.spec;
      switch( arg.slice(-4) ) {
         case "code":
            var info = '[url="' + url + '"]' + tab.label + '[/url]';
            break;
         case "Html":
            var info = '<a href="' + url + '">' + tab.label + '</a>';
            break;
         default:
            var info = tab.label + "\n" + url;
      }
      return info;
   };
   
})();

Кроме того - возможно ли сделать так же как копировать - но paste, то есть вставить - на то место, где курсор в поле ввода?

Лень делать и не нужно это.

Отредактировано etoins srldu (23-04-2014 22:58:52)

Отсутствует

 

№7924-04-2014 05:37:08

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 421
UA: Firefox 28.0
Веб-сайт

Re: [CB]Tab Clicking Options

Спасибо большое! Но насчёт ЛКМ/ПКМ - не понял - у меня работает одинаково, что ЛКМ, что ПКМ


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№8024-04-2014 09:54:38

etoins srldu
Участник
 
Группа: Members
Зарегистрирован: 23-04-2014
Сообщений: 13
UA: Firefox 28.0

Re: [CB]Tab Clicking Options

difabor пишет:

Спасибо большое! Но насчёт ЛКМ/ПКМ - не понял - у меня работает одинаково, что ЛКМ, что ПКМ

Значит ты не открываешь группы вкладок и речь идёт о пунктах которые которые информацию о всех вкладках.

Отсутствует

 

№8124-04-2014 19:46:43

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 421
UA: Firefox 28.0
Веб-сайт

Re: [CB]Tab Clicking Options

Да, не открываю.
Спасибо


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№8211-08-2014 22:36:11

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4554
UA: Firefox 24.0

Re: [CB]Tab Clicking Options

Копировать информацию о вкладках+( Firefox 17 + )
Авторы: bunda1, Dumby
Версия: от 17.07.2015.
Описание: Kод даёт возможность копировать разную информацию о открытых вкладках. Kод добавляет подменю Копировать адрес и название как BBCode или: в контекстное меню вкладки как последний пункт, клик на котором копирует адрес и название вкладки как BBCode, подменю содержит пункты:
   Адрес,
   Название,
   Адрес иконки,
   Адрес коротко
- копирует короткий адрес от Google сервиса сокращения ссылок, типа http://goo.gl/JdN1ta,
   Название коротко - копирует название вкладки до 50 символов,
   Адрес и название,
   Адрес и название как HTML,
   Адрес и редактированное название как BBCode,
- даёт возможность редактировать название вкладки перед копированием,
   ...................................................................................
   Адреса всех вкладок,
   Название всех вкладок,
   Адреса и название всех вкладок,
   Адреса и название всех вкладок как HTML,
   Адреса и название всех вкладок как BBCode.

Левый клик на пунктах подменю копирует информацию о всех вкладках, средний или правый клик только о вкладках текущей группы.

Лишние пункты в подменю можно просто удалить из кода:
Пример, если не нужен пункт Адрес удалите:

Выделить код

Код:

{ label: "Адрес", arg: 'url'},


Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Выделить код

Код:

// Добавить подменю "Копировать адрес и название как BBCode или" в контекстном меню вкладки, от 17.07.2015. ................................
(function( tabContextMenu ) {
   
   var separator = tabContextMenu.appendChild( document.createElement("menuseparator") );
   var menu = tabContextMenu.appendChild( document.createElement("menu") );      
   menu.setAttribute("label", "Копировать адрес и название как BBCode или:");
   
   addDestructor(function() {
      tabContextMenu.removeChild( menu );
      tabContextMenu.removeChild( separator );        
   });      
        
   var data = {
       url:                  "Адрес",
       label:                "Название",
       image:                "Адрес иконки",
       shortUrl:             "Адрес коротко",
       shortLabel:           "Название коротко",
       tabInfo:              "Адрес и название",
       tabInfoHtml:          "Адрес и название как HTML",
       tabChangedInfoBbcode: "Адрес и редактированное название как BBCode",
       separator1: 0,
       allTabsURL:           "Адреса всех вкладок",
       allTabsLabels:        "Название всех вкладок",
       allTabsInfo:          "Адреса и название всех вкладок",
       allTabsInfoHtml:      "Адреса и название всех вкладок как HTML",
       allTabsInfoBbcode:    "Адреса и название всех вкладок как BBCode"
   }
   var menuPopup = menu.appendChild( document.createElement("menupopup") );              
   for ( var key in data ) {
         if ( key.startsWith("separator") ) { menuPopup.appendChild(document.createElement("menuseparator")); continue };
         var menuitem = menuPopup.appendChild( document.createElement("menuitem") );
         menuitem.setAttribute("label", data[key] );
         menuitem.arg = key;
         };
   
   addEventListener("click", function(e) {
      var info, tab = document.popupNode, lab = tab.label;
      var tabs = e.button == 0 ? [...gBrowser.tabs] : gBrowser.visibleTabs;
      var arg = (e.target == menu) ? "tabInfoBbcode" : e.target.arg;

      switch( arg ) {
         case "url": info = tab.linkedBrowser.currentURI.spec; break;            
         case "label": info = lab; break;
         case "image": info = tab.image.replace("#-moz-resolution=16,16",""); break;
         case "shortUrl": copyShortUrl(); break;         
         case "shortLabel": info = lab.slice(0,50) + (lab.length > 50 ? ' ......' : ""); break;
         case "tabInfo": info = getBuildInfo(tab, arg); break;
         case "tabInfoHtml": info = getBuildInfo(tab, arg); break;
         case "tabInfoBbcode": info = getBuildInfo(tab, arg); break;
         case "tabChangedInfoBbcode": info = getBuildInfo({__proto__: tab, label: custombuttons.promptBox("Измените название вкладки:", null, lab)[1]}, arg); break;
         case "allTabsURL": info = tabs.map(function(node) node.linkedBrowser.currentURI.spec ).join("\n"); break;
         case "allTabsLabels": info = tabs.map(function(node) node.label ).join("\n"); break;
         case "allTabsInfo": info = tabs.map(function(node) getBuildInfo(node, arg) ).join("\n"); break;
         case "allTabsInfoHtml": info = tabs.map(function(node) getBuildInfo(node, arg) ).join("\n"); break;
         case "allTabsInfoBbcode": info = tabs.map(function(node) getBuildInfo(node, arg) ).join("\n"); break;
      }
      gClipboard.write( info );
      
      tabContextMenu.hidePopup();      
   }, false, menu );
   
   function copyShortUrl() { 
      var xhr = new XMLHttpRequest();
      xhr.open('POST', 'https://www.googleapis.com/urlshortener/v1/url?key=AIzaSyC7uWVak6m9AFIMORinK4gfNZZ5IrNPgKA', true);
      xhr.setRequestHeader("Content-type", "application/json");
      var request = { longUrl:content.location.href, key:'{YOUR_API_KEY}' }
      xhr.onload = xhr.onerror = function() {         
         try { gClipboard.write( JSON.parse(xhr.response).id ) } 
         catch (e) { custombuttons.alertSlide("Ошибка, не удалось получить короткий адрес","") };            
         }
      xhr.send( JSON.stringify(request) );
   };  

   function getBuildInfo( tab, arg ) {
      var info, url = tab.linkedBrowser.currentURI.spec;      
      
      switch( arg.slice(-4) ) {
        case "code": info = '[url="' + url + '"]' + tab.label + '[/url]'; break;
        case "Html": info = '<a href="' + url + '">' + tab.label + '</a>'; break;
        case "Info": info = tab.label + "\n" + url;
      }
      return info;
   };
   
})(document.getElementById("tabContextMenu"));

Отредактировано bunda1 (17-07-2015 23:31:50)

Отсутствует

 

№8322-10-2014 09:12:29

HaGEN
Забанен
 
Группа: Members
Зарегистрирован: 04-07-2013
Сообщений: 155
UA: Palemoon 24.0

Re: [CB]Tab Clicking Options

Тоже хотелось бы избавиться от TU ибо почти ничего их того множества опций не нужно или могу обойтись, очень редко юзаецца. Но есть необходимые, мож уже есть кнопки для этого:
- ЛКМ по текущей открытой вкладке - переход на последнюю посещенную(т.е. предыдущую где был, поведение из Оперы)
- при закрытии вкладки - переход тоже на последнюю посещенную.
подскажите или пните в нужном направлении.

Отсутствует

 

№8423-10-2014 19:58:01

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4554
UA: Firefox 24.0

Re: [CB]Tab Clicking Options

HaGEN пишет:

- при закрытии вкладки - переход тоже на последнюю посещенную.

:/

Выделить код

Код:

const tc = gBrowser.tabContainer;
let tabs = [];
function onTabSelect(e) {
    for (let i = 0; i < tabs.length; i++) {
        if (e.target.linkedPanel != tabs[i])
            continue;
        tabs.splice(i, 1);
        break;
    }
    tabs.push(e.target.linkedPanel);
}
function onTabClose(e) {
    let allTabs = Array.slice(tc.childNodes);
    let allTabsLP = allTabs.map(function(tab) {
        return tab.linkedPanel;
    });
    if (e.target == gBrowser.selectedTab &&
            tabs.length >= 1) {
        let tab;
        let lp = tabs[tabs.length - (tabs.length == 1 ? 1 : 2)];
        for (let i = 0; i < allTabsLP.length; i++) {
            if (lp != allTabsLP[i])
                continue;
            tab = allTabs[i];
            break;
        }
        if (tab)
            gBrowser.selectedTab = tab;
    }
    if (tabs.length != 0) {
        tabs = tabs.filter(function(tab) {
            return allTabsLP.indexOf(tab) != -1 ? true : false;
        });
        tabs.splice(tabs.length - (tabs.length == 1 ? 1 : 2), 1);
    }
}
addEventListener("TabSelect", onTabSelect, false, tc);
addEventListener("TabClose", onTabClose, false, tc);

Отсутствует

 

№8522-11-2014 07:34:04

HaGEN
Забанен
 
Группа: Members
Зарегистрирован: 04-07-2013
Сообщений: 155
UA: Palemoon 24.0

Re: [CB]Tab Clicking Options

я чета запутался да запатятовал. Благодарю bunda1 , но одно без другого ... хехех. В общем нашел плуг мааахонький, именно для этого. Наз. FLST - FocusLastSelectedTab делает именно то что нужно. И "click-по-текущей-вкл-ке" и "закрытие-вкл-ки" - переход на посл. посещенную.
TU таки удалил, хехех..., ибо и не нужно ни для чего более.
Благодарю bunda1 за желание помощи  *THANKS*

Отсутствует

 

№8623-04-2015 16:46:39

Dexu
Участник
 
Группа: Members
Зарегистрирован: 01-01-2015
Сообщений: 47
UA: Firefox 37.0

Re: [CB]Tab Clicking Options

bunda1, Dumby
Долгое время использую вашу кнопку перезагрузки вкладки, при активации, спасибо большое. Но вот хотелось бы немного её модифицировать, чтобы ПКМ по левым 29 пикселям, т.е. по фавиконке, делали тоже самое, но без Scroll to Top, а ПКМ по остальной площади вкладки оставить со Scroll to Top, возможно ли это?

Dumby
Присоединяюсь к bunda1, полезная вещь, а можно ли ее вкл/выкл повесить на ПКМ, а контекстное меню убрать?

Пришла в голову идея, чтобы не было холостой перезагрузки и не раздражал throbber, возможно ли сделать кнопку, перезагружающую таб только при активации. Т.е. находясь в этой теме, я нажимаю одинарный ПКМ по соседней вкладке https://forum.mozilla-russia.org/search … n=show_24h и всегда при ее активации, она со свежими непрочитанными темами. Отключается тоже по ПКМ. Плюс к релоаду, будет удобен автоматический Scroll to Top.

function reloader(e) {
    var tab = e.target;
    var br = tab.linkedBrowser;

    gBrowser.reloadTab(tab);
    br.addEventListener("DOMContentLoaded", function onLoad(e) {
        br.removeEventListener("DOMContentLoaded", onLoad, false);
        e.target.defaultView.scroll(0, 0);
    }, false);
}
function addListener(e) {
    if (e.button != 2 || e.target.nodeName != "tab") return;
    e.preventDefault();
    var tab = e.target;
    if (!tab.reloader) {
        addEventListener("TabSelect", reloader, false, e.target);
        tab.reloader = true;
        return;
    }
    removeEventListener("TabSelect", reloader, false, e.target);
    delete tab.reloader;
}
addEventListener("click", addListener, false, gBrowser.mTabContainer);

Отсутствует

 

№8725-04-2015 00:40:59

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 699
UA: Firefox 31.0

Re: [CB]Tab Clicking Options

Dexu
Да, это возможно. Вариант

скрытый текст

Выделить код

Код:

(trg => {
    var left = 29;

    var attr = "reload-onselect-mode";
    var url = "data:application/x-javascript," + encodeURIComponent("content.scrollTo(0, 0);");
    function scroll(tab) tab.linkedBrowser.messageManager.loadFrameScript(url, true);

    addEventListener("TabSelect", e => {
        if (!e.target.hasAttribute(attr)) return;
        var tab = e.target;
        gBrowser.reloadTab(tab);
        tab.getAttribute(attr) == 1 && scroll(tab);
    }, false, trg);

    addEventListener("click", e => {
        if (e.button != 2 || e.target.nodeName != "tab") return;
        e.preventDefault();
        var tab = e.target;
        if (tab.hasAttribute(attr)) tab.removeAttribute(attr);
        else {
            var mode = Number(e.clientX - tab.boxObject.x > left);
            tab.setAttribute(attr, mode);
            if (!tab.hasAttribute("pending") || !mode) return;
            var state = JSON.parse(SessionStore.getTabState(tab));
            if (state.scroll) {
                delete state.scroll;
                SessionStore.setTabState(tab, JSON.stringify(state));
            }
        }
    }, false, trg);
})(gBrowser.tabContainer);

Отсутствует

 

№8825-04-2015 00:57:00

Dexu
Участник
 
Группа: Members
Зарегистрирован: 01-01-2015
Сообщений: 47
UA: Firefox 37.0

Re: [CB]Tab Clicking Options

Dumby
Спасибо огромнейшее, ещё в добавок моментальный Top, просто незаменимая кнопка. :music:

Отсутствует

 

№8916-07-2015 22:39:28

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 491
UA: Firefox 39.0

Re: [CB]Tab Clicking Options

Подскажите, пожалуйста. При выборе "Адрес" на неактивной вкладке копируется URL открытой, а при выборе "Название" или "Адрес иконки" всё нормально – информация с таба на который наведён курсор. Необходимо что-бы и URL копировался того таба который под курсором.

Отредактировано vitalii201 (16-07-2015 23:30:55)

Отсутствует

 

№9017-07-2015 23:32:37

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4554
UA: Firefox 24.0

Re: [CB]Tab Clicking Options

vitalii201 пишет:

Подскажите, пожалуйста. При выборе "Адрес" на неактивной вкладке копируется URL открытой, а при выборе "Название" или "Адрес иконки" всё нормально – информация с таба на который наведён курсор. Необходимо что-бы и URL копировался того таба который под курсором.

Вот исправил: Копировать информацию о вкладках

Отсутствует

 

№9115-10-2015 18:04:53

KOMMEHTATOP
Участник
 
Группа: Members
Зарегистрирован: 13-10-2015
Сообщений: 38
UA: Firefox 41.0

Re: [CB]Tab Clicking Options

Dexu
Dumby

Dumby пишет:

Спасибо огромнейшее, ещё в добавок моментальный Top, просто незаменимая кнопка. :music:

Можно пожалуйста по подробнее как сделать Scroll to Top?

P.S.
Создаю новую кнопку в Сustom Buttons-ложу этот код  в код-сохроняю кнопку-вытаскиваю на панель-нажимя на не -не чего не происходит.(что делаю не так?)

скрытый текст
(trg => {
    var left = 29;

    var attr = "reload-onselect-mode";
    var url = "data:application/x-javascript," + encodeURIComponent("content.scrollTo(0, 0);");
    function scroll(tab) tab.linkedBrowser.messageManager.loadFrameScript(url, true);

    addEventListener("TabSelect", e => {
        if (!e.target.hasAttribute(attr)) return;
        var tab = e.target;
        gBrowser.reloadTab(tab);
        tab.getAttribute(attr) == 1 && scroll(tab);
    }, false, trg);

    addEventListener("click", e => {
        if (e.button != 2 || e.target.nodeName != "tab") return;
        e.preventDefault();
        var tab = e.target;
        if (tab.hasAttribute(attr)) tab.removeAttribute(attr);
        else {
            var mode = Number(e.clientX - tab.boxObject.x > left);
            tab.setAttribute(attr, mode);
            if (!tab.hasAttribute("pending") || !mode) return;
            var state = JSON.parse(SessionStore.getTabState(tab));
            if (state.scroll) {
                delete state.scroll;
                SessionStore.setTabState(tab, JSON.stringify(state));
            }
        }
    }, false, trg);
})(gBrowser.tabContainer);

Отредактировано KOMMEHTATOP (15-10-2015 18:34:16)


Distance Subordinatio!

Отсутствует

 

№9217-10-2015 13:49:42

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4554
UA: Firefox 24.0

Re: [CB]Tab Clicking Options

KOMMEHTATOP пишет:

Можно пожалуйста по подробнее как сделать Scroll to Top?
Создаю новую кнопку в Сustom Buttons-ложу этот код  в код-сохроняю кнопку-вытаскиваю на панель-нажимя на не -не чего не происходит.(что делаю не так?)

Код при переключении на вкладку делает Scroll to Top и обнавляет вкладку, код также должен обнавлять вкладку по ПКМ на вкладке но на FF41 это не работает.

Отсутствует

 

№9317-12-2015 17:58:21

Nero Wolfe
Участник
 
Группа: Members
Зарегистрирован: 23-06-2010
Сообщений: 146
UA: Firefox 43.0

Re: [CB]Tab Clicking Options

Привет.
Прошу проверить: у меня на 43 версии [firefox] не работает код отсюда https://forum.mozilla-russia.org/viewto … 06#p575006

bunda1 пишет:

Открывать всё в новых вкладках

Отсутствует

 

№9401-03-2017 13:40:35

mahtanoronra
Участник
 
Группа: Members
Зарегистрирован: 08-03-2009
Сообщений: 57
UA: Firefox 45.0

Re: [CB]Tab Clicking Options

bunda1 пишет:

Открывать любую новую вкладку справа от текущей( Firefox 17 + )
Автор: bunda1
Описание: Kод открывает любую новую вкладку справа от текущей.
Версия: от 08.04.2014.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Выделить код

Код:

// Открывать любую новую вкладку справа от текущей, от 08.04.2014. ................................ 
addEventListener("TabOpen", function(e) {
   var newTab = e.target;
   var lab = newTab.label; 
   var tabpos = gBrowser.selectedTab._tPos;
   var newTabLab = gBrowser.mStringBundle.getString("tabs.emptyTabTitle");  

   if ( tabpos == 0 && lab == newTabLab ) return;      // если восстановление сессии 
   if ( new Error().stack.indexOf("openContainer") !== -1 ) return;   // если открыть всё во вкладках из папки закладок  
   
   lab == newTabLab
   ? setTimeout(function() gBrowser.moveTabTo( e.target, tabpos + 1 ), 50) // если восстановление вкладки
   : gBrowser.moveTabTo( e.target, tabpos + 1 );
   
   // автоматически закрывать "custombutton" вкладку
   if ( lab.startsWith("custombutton://%") ) setTimeout(function() gBrowser.removeTab( newTab ), 0);

}, false, gBrowser.tabContainer );

кажется это кнопка работает не полностью на 45 мозиле. не все вкладки открываются справа от текущей.
скажем внешние из скайпа например или из расширения forum.ru-board bookmarks checker идут в конец списка вкладко

кажется это код работает

Выделить код

Код:


// Открывать любую новую вкладку справа от текущей, от 25.11.2015. ................................ 
addEventListener("TabOpen", (e)=> {
   var newTab = e.target,
       tabpos = gBrowser.selectedTab._tPos,
       err = new Error().stack; 

   // если восстановление сессии или открыть всё во вкладках из папки закладок 
   if ( /ssi_restore|openContainer/.test(err) ) return;  
   
   
// if ( tabpos == 0 && lab == newTabLab ) return;                     // если восстановление сессии
// if ( tabpos == 0 && lab == '' ) return;                            // если восстановление сессии с Bookmarks Tab     
// if ( new Error().stack.indexOf("openContainer") !== -1 ) return;   // если открыть всё во вкладках из папки закладок  
// if ( /handleLinkClick/.test(new Error().stack) ) return;           // если открыть ссылку по СКМ 
   

   /undoCloseTab/.test(err)
   ? setTimeout(()=> gBrowser.moveTabTo(newTab, tabpos + 1), 50) // если восстановление вкладки
   : gBrowser.moveTabTo(newTab, tabpos + 1);
   
      // автоматически закрывать "custombutton" вкладку
   if ( lab.startsWith("custombutton://%") ) setTimeout(function() gBrowser.removeTab( newTab ), 0);

}, false, gBrowser.tabContainer );

Отредактировано mahtanoronra (01-03-2017 16:37:34)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]