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

Не получается решить проблему на форуме? Служба технической поддержки Mozilla Россия — support@mozilla-russia.org.

№610124-03-2013 03:34:21

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

Re: Custom Buttons

bunda1 пишет:

Как удалить вкладку использую её linkedPanel

Что-то не соображу...
Открываю три вкладки library, у всех трёх - атрибут linkedpanel разный.
Ну, а закрыл их так

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

Выделить код

Код:

const library = "chrome://browser/content/places/places.xul";
Array.slice(gBrowser.tabs).forEach(function(tab) {
    if (tab.linkedBrowser.currentURI.spec == library) gBrowser.removeTab(tab);
});

Отредактировано Dumby (24-03-2013 03:35:26)

Отсутствует

 

№610224-03-2013 03:50:54

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

Re: Custom Buttons

Dumby пишет:

Открываю три вкладки library, у всех трёх - атрибут linkedpanel разный.

Так и должно быть, linkedpanel это что то вроде уникального id для вкладки.

Добавлено 24-03-2013 03:58:12
А за код спасибо, он работает. :)

Отредактировано bunda1 (24-03-2013 03:58:12)

Отсутствует

 

№610324-03-2013 05:45:16

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

Re: Custom Buttons

Dumby
Вот что получилось из твоего кода, может есть полезные замечания.

Выделить код

Код:

const library = "chrome://browser/content/places/places.xul";

// переместить вкладку библиотеки рядом с текущей вкладкой и закрыть все лишние вкладки библиотеки ....
TabView._window || TabView._initFrame(); 
Array.slice( gBrowser.tabs ).forEach(function( tab ) {
      var libr = ( tab.linkedBrowser.currentURI.spec == library );
        
      if ( libr && content.location.toString() !== library ) {
           if ( TabView._window.GroupItems.groupItems.length > 1 ) {               
                TabView.moveTabTo( tab, ( TabView._window.GroupItems._activeGroupItem.id ) );
                }
           var selIndex = gBrowser.mCurrentTab._tPos;
           gBrowser.moveTabTo(tab, (tab._tPos > selIndex) ? selIndex + 1 : selIndex );           
           gBrowser.mTabContainer.advanceSelectedTab(+1, true);
           var moveTab = tab.linkedPanel;  
           return;           
           }
           
      if ( libr && tab.linkedPanel !== moveTab ) gBrowser.removeTab( tab );
});
// открыть вкладку библиотеки рядом с текущей вкладкой если нечего переместить ....     
if ( content.location.toString() !== library ) gBrowser.selectedTab = gBrowser.addTab( library );

Отредактировано bunda1 (24-03-2013 05:46:09)

Отсутствует

 

№610424-03-2013 12:36:37

geczu
Участник
 
Группа: Members
Зарегистрирован: 02-11-2012
Сообщений: 244
UA: Firefox 17.0

Re: Custom Buttons

Можно в настройках поставить подхват плагина флэш из папки профиля https://www.pgpru.com/soft/rasshirenija … #h52239-45
Но приходится вручную качать и кидать туда новые версии. Можно сделать для этого кнопочку?
Плагин брать тут http://portableappz.blogspot.ru/2011/03 … ugins.html

Как вариант кнопка может идти в системную папку и брать оттуда плагин.

Отсутствует

 

№610524-03-2013 14:57:39

Raf-9600
Участник
 
Группа: Members
Зарегистрирован: 15-05-2007
Сообщений: 550
UA: Firefox 20.0

Re: Custom Buttons

Только у меня на версии [firefox] 20 Custom Buttons фактически перестал работать?


Иногда мне кажется, что лучшие программисты мира и лучшие технические умы работают только над одним - как сделать так, чтоб на новом скоростном железе тормозило также, как на хламе 10 летней давности.
(с)

Отсутствует

 

№610624-03-2013 15:19:42

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 20.0

Re: Custom Buttons

geczu пишет:

Плагин брать тут http://portableappz.blogspot.ru/2011/03 … ugins.html

Там нет плагина в виде дллки, только запаковынный в инсталлятор, который конечно же распаковывается легко, но думаю не для кнопки.

Отсутствует

 

№610724-03-2013 15:36:27

Zaycoff
Участник
 
Группа: Extensions
Зарегистрирован: 18-02-2012
Сообщений: 1410
UA: Firefox 19.0

Re: Custom Buttons

Raf-9600 пишет:

Только у меня на версии [firefox] 20 Custom Buttons фактически перестал работать?

Попробуйте Custom Buttons  devbuilds

Отсутствует

 

№610824-03-2013 16:56:16

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

Re: Custom Buttons

bunda1 пишет:

может есть полезные замечания

Попробую

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

Выделить код

Код:

      if ( libr && tab.linkedPanel !== moveTab ) gBrowser.removeTab( tab );
});
// открыть вкладку библиотеки рядом с текущей вкладкой если нечего переместить ....     
if ( content.location.toString() !== library ) gBrowser.selectedTab = gBrowser.addTab( library );

Вроде тут moveTab будет всегда undefined.
Открывается не рядом.
А ещё глючит, если кликнуть по кнопке,
когда library уже открыта в текущей вкладке.

Если я правильно понял, перемещается первая найденная,
остальные закрываются. Вот, попробовал тоже

Выделить код

Код:

const library = "chrome://browser/content/places/places.xul";
var libTab = null;
Array.slice(gBrowser.tabs).forEach(function(tab) {
    if (tab.linkedBrowser.currentURI.spec != library) return;
    if (!libTab) libTab = tab;
    else gBrowser.removeTab(tab);
})
var selTab = gBrowser.selectedTab;
if (libTab != selTab) {
    if (libTab && gBrowser.visibleTabs.indexOf(libTab) == -1)
        TabView.moveTabTo(libTab, TabView._window.GroupItems._activeGroupItem.id);
    libTab = libTab || gBrowser.addTab(library);
    var pos = selTab._tPos + (libTab._tPos > selTab._tPos);
    gBrowser.moveTabTo(libTab, pos);
    gBrowser.selectedTab = libTab;
}

Отсутствует

 

№610924-03-2013 22:22:46

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

Re: Custom Buttons

Dumby
Опять отличный код и остроумное решение, спасибо.

Отсутствует

 

№611025-03-2013 00:14:28

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

Re: Custom Buttons

okkamas_knife
Может быть

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

Выделить код

Код:

var a = "ololo";
var b = "lol";

var regexp1 = /ololo\s+?lol/g;
var regexp2 = RegExp(a + "\\s+?" + b, "g");

alert(
    "regexp1:  " + regexp1 + "\n" +
    "regexp2:  " + regexp2
);

Отсутствует

 

№611125-03-2013 00:56:07

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

Re: Custom Buttons

okkamas_knife пишет:

не не то.
вот сам нашел

А в чём разница ?

Отсутствует

 

№611225-03-2013 02:06:17

AlexandrDa
Участник
 
Группа: Members
Зарегистрирован: 02-03-2013
Сообщений: 41
UA: Firefox 19.0

Re: Custom Buttons

Всем привет!
Скажите, а можно ли запускать фрагменты кода экстеншенов из веб-страницы?
Например, я загружаю определенную страницу, и все кукизы удаляются.

Отсутствует

 

№611325-03-2013 15:48:34

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 20.0

Re: Custom Buttons

Если какая-нибудь кнопочка заметок кроме Fast Notes? Было бы хорошо, если там был бы редактор во вкладке, который наприме здесь:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ERemove%20target%20_blank%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aapplication/text%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20addHostInPref%28%29%3B%20//%20%u041B%u041A%u041C%0A%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%20//%20%u0421%u041A%u041C%0A%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20e.metaKey%20%29%20gShowPopup%28this%29%3B%20//%20%u041F%u041A%u041C%20+%20Ctrl%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%20%7B%20//%20%u041F%u041A%u041C%20%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20editExclusions%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%0A%7D%3B%0A%0A%0A%0Aconst%20editor%20%3D%20%22data%3Atext/html%3Bbase64%2CPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50ID0gInRleHQvaHRtbDsgY2hhcnNldCA9IHV0Zi04IiAvPiA8VEVYVEFSRUE+PC9URVhUQVJFQT4gPHN0eWxlPiBodG1sIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfSB0ZXh0YXJlYSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0gPC9zdHlsZT4KCg%3D%3D%22%3B%0Aconst%20alertsService%20%3D%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%3B%0A%0Avar%20button%20%3D%20this%3B%0Avar%20val%20%3D%20Application.prefs.getValue%28%22removeTarget.disabled%22%2C%200%29%3B%0AremoveTargetDisabled%20%3D%20%28%20val%20%3D%3D%200%20%29%3F%20%22%22%3A%20val%3B%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%0A%0A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u0430%u0442%u0440%u0438%u0431%u0443%u0442%20target%20_blank%20%u0432%20%u0440%u0430%u0437%u0440%u0435%u0448%u0435%u043D%u043D%u044B%u0445%20%u0434%u043E%u043C%u0435%u043D%u0430%u0445%20.....................................%0Afunction%20removeTarget%28e%29%20%7B%20%20%0A%20%20%20%20%0A%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u0432%u043B%u0430%u0434%u043A%u0438%20%u0432%20%u0444%u043E%u043D%u043E%u0432%u043E%u043C%20%u0440%u0435%u0436%u0438%u043C%u0435%20....%0A%20%20%20%20%20if%20%28%20e.type%20%21%3D%3D%20%22DOMMouseScroll%22%20%26%26%20e.target.linkedBrowser.currentURI.spec%20%21%3D%3D%20getBrowser%28%29.currentURI.spec%20%29%20return%3B%0A%0A%20%20%20%20%20if%20%28%20getBrowser%28%29.currentURI.spec%20%3D%3D%20editor%20%29%20gURLBar.value%20%3D%20%22%22%3B%20%20%20%20%20%0A%20%20%20%20%0A%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u044B%u0435%20%u0434%u043E%u043C%u0435%u043D%u044B%20%u0438%u043B%u0438%20%27reader%27%20....%0A%20%20%20%20%20if%20%28%20/reader/.test%28%20content.location%20%29%20%7C%7C%20removeTargetDisabled.indexOf%28%20content.location.host%20%29%20%21%3D%3D%20-1%20%29%20return%3B%20%20%20%20%20%20%0A%0A%20%20%20%20%20var%20links%20%3D%20gBrowser.contentDocument.links%3B%0A%20%20%20%20%20if%20%28%20%21links%20%29%20return%3B%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0441%u0441%u044B%u043B%u043E%u043A%20%u043D%u0435%u0442%0A%20%20%20%20%20%20%20%20%20%20for%20%28%20var%20i%20%3D%200%3B%20i%20%3C%20links.length%3B%20i++%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20links%5Bi%5D.removeAttribute%28%22target%22%2C%20%22_blank%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%7D%0AgBrowser.addEventListener%28%22DOMMouseScroll%22%2C%20removeTarget%2C%20true%29%3B%20%20%0AgBrowser.tabContainer.addEventListener%28%22TabAttrModified%22%2C%20removeTarget%2C%20true%29%3B%0A%0Athis.onDestroy%20%3D%20function%28%29%20%7B%0A%20%20%20%20gBrowser.removeEventListener%28%22DOMMouseScroll%22%2C%20removeTarget%2C%20true%29%3B%20%0A%20%20%20%20gBrowser.tabContainer.removeEventListener%28%22TabAttrModified%22%2C%20removeTarget%2C%20true%29%3B%0A%20%20%20%20%0A%20%20%20%20if%20%28reason%20%3D%3D%20%22delete%22%29%20custombuttons.clearPrefs%28%22removeTarget.disabled%22%29%3B%20%20%20%20%0A%7D%3B%0A%0A%0A%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0438%u0439%20%u0434%u043E%u043C%u0435%u043D%20%u0438%u043B%u0438%20%u0441%u043F%u0438%u0441%u043E%u043A%20%u0438%u0437%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u0430%20%u0432%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20.............................%0Afunction%20addHostInPref%28%29%20%7B%0A%20%20%20%20%20%0A%20%20%20%20%20var%20currURL%20%3D%20content.location.href%3B%0A%20%20%20%20%20var%20currHost%20%3D%20content.location.host%3B%0A%0A%20%20%20%20%20if%20%28%20currURL%20%21%3D%3D%20editor%20%26%26%20%21currHost%20%7C%7C%20/mozapps%7Cglobal%7Cbrowser/.test%28%20currHost%20%29%20%29%20return%3B%0A%0A%20%20%20%20%20if%20%28%20currURL%20%21%3D%3D%20editor%20%26%26%20removeTargetDisabled.indexOf%28currHost%29%20%21%3D%3D%20-1%20%29%20%7B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20button.label%2C%20%22%u0418%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u0443%u0436%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%22%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%20%20%20%20%0A%0A%20%20%20%20%20if%20%28%20currURL%20%3D%3D%20editor%20%29%20%7B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20title%20%3D%20button.label%0A%20%20%20%20%20%20%20%20%20%20var%20notification%20%3D%20%22%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u043B%20%u043D%u043E%u0432%u044B%u0439%20%u0441%u043F%u0438%u0441%u043E%u043A%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0439%22%3B%0A%20%20%20%20%20%20%20%20%20%20var%20image%20%3D%20%22chrome%3A//global/skin/icons/information-16.png%22%3B%0A%20%20%20%20%20%20%20%20%20%20var%20str%20%3D%20content.document.getElementsByTagName%28%22textarea%22%29%5B0%5D.value%3B%0A%20%20%20%20%20%20%20%20%20%20removeTargetDisabled%20%3D%20%28%20str.split%28%22%2C%22%29.length%20%3C%202%29%3F%20%22%22%3A%20str%3B%20//%20%u0435%u0441%u043B%u0438%20%u043D%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%u0430%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20else%20%7B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20title%20%3D%20currHost%3B%0A%20%20%20%20%20%20%20%20%20%20var%20notification%20%3D%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0434%u043E%u043C%u0435%u043D%20%u0432%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%22%3B%0A%20%20%20%20%20%20%20%20%20%20var%20image%20%3D%20gBrowser.mCurrentTab.image%3F%20gBrowser.mCurrentTab.image%3A%20button.image%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20removeTargetDisabled%20%3D%20removeTargetDisabled%20+%20currHost%20+%20%22%2C%22%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%0A%20%20%20%20%20Application.prefs.setValue%28%22removeTarget.disabled%22%2C%20removeTargetDisabled%20%29%3B%0A%20%20%20%20%20alertsService.showAlertNotification%28image%2C%20title%2C%20notification%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%7D%3B%0A%0A%0A%0A//%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%28%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%29%20%u0438%20%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20.............................................%0Afunction%20editExclusions%28%29%20%7B%0A%0A%20%20%20%20%20if%20%28%20removeTargetDisabled.length%20%3C%202%20%29%20%7B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20button.label%2C%20%22%u0418%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0439%20%u043D%u0435%u0442%22%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20for%20%28%20var%20i%20%3D%200%3B%20i%20%3C%20gBrowser.tabs.length%3B%20i++%20%29%20%7B%20//%20%u0437%u0430%u043A%u0440%u044B%u0442%u044C%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0435%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u044B%0A%20%20%20%20%20%20%20%20%20%20%20var%20tab%20%3D%20gBrowser.mTabs%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20tab.linkedBrowser.currentURI.spec%20%21%3D%3D%20editor%20%29%20continue%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.removeTab%28tab%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%28%20content.location.href%20%3D%3D%20editor%20%29%3F%20loadURI%28%20editor%20%29%3A%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20editor%20%29%3B%20%20%20%20%20%20%20%0A%20%20%20%20%20gBrowser.addEventListener%28%22pageshow%22%2C%20function%28%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20content.document.title%20%3D%20%22Editor%22%3B%0A%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%22pageshow%22%2C%20arguments.callee%2C%20true%29%3B%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20content.document.getElementsByTagName%28%22textarea%22%29%5B0%5D.value%20%3D%20removeTargetDisabled%3B%20//%20%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%7D%2C%20true%29%3B%0A%7D%3B%0A%0A%0A%0Athis.tooltipText%20%3D%20%22%u041B%u041A%u041C%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0434%u043E%u043C%u0435%u043D%20%u0432%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%22%20+%22%5Cn%22+%0A%09%09%20%20%20%22%u0421%u041A%u041C%3A%20CB%20%u043C%u0435%u043D%u044E%22%20+%22%5Cn%22+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%u041F%u041A%u041C%3A%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%u041E%u043D%u043B%u0430%u0439%u043D-%u043F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u043C%20%u043E%u043A%u043D%u0435%0A%u0411%u0435%u0437%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0438%u0442%u0441%u044F%20%u0432%u0441%u044F%20%u0442%u0435%u043A%u0443%u0449%u0430%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%0A%0A%3Clabel%3E%20%0Aid%20%3D%20%3Cid%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

По сути надо только чтобы кнопка открывала текстовый файл и сохраняла в него же.

Отсутствует

 

№611425-03-2013 21:49:03

AlexandrDa
Участник
 
Группа: Members
Зарегистрирован: 02-03-2013
Сообщений: 41
UA: Firefox 19.0

Re: Custom Buttons

okkamas_knife пишет:

Dumby пишет:

А в чём разница ?

посмотрел внимательней на твой код сравнивая со своим..
мдя.. как всетаки сильно запись влияет на восприятие.. действительно тоже самое... только вот смотрю в твой код и вижу фигу,то бишь не втыкаю что там и как.:dumb:

AlexandrDa пишет:

Скажите, а можно ли запускать фрагменты кода экстеншенов из веб-страницы?
Например, я загружаю определенную страницу, и все кукизы удаляются.

неа у страницы прав нет.
но можно сделать так
ставим на страничку какуюто метку и раширением или кнопкой отслеживаем её наличие если метка есть то запускаем нужный код.
тут есть вариант со слежением за урл

Спасибо за оперативный ответ!  Практически что надо. Один момент: я переходу на страницу из формы и нужно очистить куки. Передаю в строке #1 , на который реагирует вышеприведенный код. Но в адресе все равно остается #1, которая к тому же реагирует на аякс-изменения на странице.
Как можно из адреса отрезать сразу #1?
Или задать единоразовое выполнение только при загрузке страницы?

Собственно, можно для этого сделать транзитную страницу с авторедиректом, Но спросил, вдруг кто развивал эту тему.

Отсутствует

 

№611526-03-2013 23:21:49

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

Re: Custom Buttons

Как добавить атрибут на текущею страницу?

Отсутствует

 

№611627-03-2013 00:06:50

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

Re: Custom Buttons

okkamas_knife пишет:

ЭЭЭ? в смысле? опиши подробнее что хочешь получить.

Ну тогда вопрос снимаю потому что смысла нет.

Отсутствует

 

№611727-03-2013 01:44:22

AlexandrDa
Участник
 
Группа: Members
Зарегистрирован: 02-03-2013
Сообщений: 41
UA: Firefox 19.0

Re: Custom Buttons

okkamas_knife пишет:

AlexandrDa
c урл это как пример
если ты можешь менять код странички то проще добавить туда какой нибудь тэг со своим ид
скажем в самом низу
<span id='mycomand' title='clearcache'></span>
в кнопке ставишь листенер на загрузку страницы
как загрузилась ищешь на страничке элемент с ид mycomand
если он есть то либо сразу выполняешь очистку кэша либо получаешь значение title и в зависимости от того что в нём выполняешь соответствующие команды
вот пример обработки.

Выделить код

Код:

var mc=window.content.document.getElementById('mycomand');
if (mc!==null){alert(mc.title)}else{
var pc=content.document.body.innerHTML;
var nn=pc.toString();
var nn=nn+"<span id='mycomand' title='clearcache'></span>";
content.document.body.innerHTML=nn;
alert("тэг отсутствовал.добавили жмем ок и смотрим");
var mc=window.content.document.getElementById('mycomand');
alert(mc.title)
}

Все получилось, шеф! Мои благодарности! :beer:

Отсутствует

 

№611827-03-2013 19:26:20

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

Re: Custom Buttons

okkamas_knife пишет:

нет уж давай колись что за атрибут ты хотел повесить на страничку!:D

Просто я тут думаю как отследить переход по результатам поиска в гугле, ну когда переключаешь:     1    2    3    4    5    6    7    8    9    10    Следующая
Обычные обработчики это не отслеживают.

Отсутствует

 

№611927-03-2013 19:49:51

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4277
UA: Firefox 20.0

Re: Custom Buttons

bunda1 пишет:

как отследить переход по результатам поиска в гугле, ну когда переключаешь:     1    2    3    4    5    6    7    8    9    10    Следующая
Обычные обработчики это не отслеживают.

hashchange/popstate?


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№612027-03-2013 20:03:34

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

Re: Custom Buttons

Infocatcher
Спасибо, попробую разобраться.

Отсутствует

 

№612128-03-2013 14:29:01

Лёша
Участник
 
Группа: Members
Откуда: Отсюда
Зарегистрирован: 29-11-2004
Сообщений: 47
UA: Firefox 20.0

Re: Custom Buttons

bunda1 пишет:

Лёша пишет:

    Только после перезапуска, кнопка пропадает и приходится каждый раз делать снова... В чем может быть проблема? :(

Что значит пропадает? Нужны подробности.

Добавляю кнопку "Home"

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

Выделить код

Код:

goDoCommand('cmd_scrollTop');


Потом из настроек выношу
http://s017.radikal.ru/i406/1303/80/2d8f3b77bf81.jpg

И если выйти из лисы, то пропадает значок
http://i057.radikal.ru/1303/34/0d5775822694.jpg

Но если нажимать в "то" место, функиция работает... Но зайти в настройки данной кнопки не получается...

Отсутствует

 

№612228-03-2013 20:50:20

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

Re: Custom Buttons

okkamas_knife пишет:

закинь в секцию код .....

Спасибо, это тоже пригодится.

Отсутствует

 

№612329-03-2013 11:00:59

Лёша
Участник
 
Группа: Members
Откуда: Отсюда
Зарегистрирован: 29-11-2004
Сообщений: 47
UA: Firefox 20.0

Re: Custom Buttons

okkamas_knife, с Вашей помощью разобрался... Благодарю :rock:

Отсутствует

 

№612429-03-2013 13:04:48

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

Re: Custom Buttons

Dumby
Как запомнить папку истории для Открывать библиотеку в вкладке и последнюю активную папку библиотеки
Проблема в том что папки истории меняются, папка которая сегодня называется Сегодня завтра будет называться Вчера . Поэтому я заблокировал в коде запоминание папок истории.

Отредактировано bunda1 (29-03-2013 13:06:16)

Отсутствует

 

№612529-03-2013 23:47:00

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

Re: Custom Buttons

bunda1

Может что-то вроде этого подойдёт.
Кстати, у кнопок уже существует метод init ...

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

Выделить код

Код:

// Открывать библиотеку в вкладке и последнюю активную папку библиотеки ....................
this.init = function(x) {
    const cb = custombuttons;
    const pn = "CB.lastUsedLibraryFolder";
    const library = "chrome://browser/content/places/places.xul";


    // Перехватывать открытие библиотеки и открывать её в вкладке рядом с текущей ............
    function libraryInTab(e) {

        var command = e.target.getAttribute("oncommand");
        if (!/PlacesCommandHook.showPlacesOrganizer/.test(command)) return;
        e.stopPropagation();

        // закрыть все вкладки библиотеки кроме первой ....
        var libTab = null;
        Array.slice(gBrowser.tabs).forEach(function(tab) {
            if (tab.linkedBrowser.currentURI.spec !== library) return;
            !libTab ? libTab = tab : gBrowser.removeTab(tab);
        });

        // переместить или открыть библиотеку рядом с текущей вкладкой ....
        var selTab = gBrowser.selectedTab;
        if (libTab !== selTab) {
            if (libTab && gBrowser.visibleTabs.indexOf(libTab) == -1)
                TabView.moveTabTo(libTab, TabView._window.GroupItems._activeGroupItem.id);
            libTab = libTab || gBrowser.addTab(library);
            var pos = selTab._tPos + (libTab._tPos > selTab._tPos);
            gBrowser.moveTabTo(libTab, pos);
            gBrowser.selectedTab = libTab;
        }
    };
    addEventListener("command", libraryInTab, true, window);


    // Открывать и запоминать последнюю активную папку если библиотека открыта как вкладка ............
    function openLastUsedFolder(e) {

        var win = e.target.defaultView;
        if (win.location != library) return;

        setTimeout(function() { // открыть
            win.PlacesOrganizer.location = someFunction(cb.getPrefs(pn));
            win.PlacesOrganizer._places.focus();
        }, 100);

        win.addEventListener("unload", function(e) { // запоминать           
            this.removeEventListener(e.type, arguments.callee, false);
            var loc = win.PlacesOrganizer.location;
            loc = someFunction(loc, win.document.lastModified);
            cb.setPrefs(pn, loc);

        }, false);
    };
    function someFunction(loc, time) {

        if (!/beginTime/.test(loc)) return loc;
        const h24 = 86400000;
        var date = time ? new Date(time) : new Date;
        var midnight = date.setHours(0, 0, 0, 0);

        var points = {
            tomorrow: midnight + h24,
            today: midnight,
            yesterday: midnight - h24,
            week: midnight - 7 * h24,
            month: date.setDate(1),
            halfYear: date.setMonth(date.getMonth() - 5)
        };
        var res = loc;
        for (var point in points)
            res = time ? res.replace(points[point], point) : res.replace(point, points[point]);
        return res;
    }
    addEventListener("DOMContentLoaded", openLastUsedFolder, false, gBrowser);


    // Удалить настройки кода из about:config при удалении кнопки ............
    this.onDestroy = function(reason) {
        if (reason == "delete") cb.clearPrefs(pn);
    };
};
this.init(this);

Отредактировано Dumby (30-03-2013 09:44:28)

Отсутствует

 

Board footer

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