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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№847627-05-2015 18:05:09

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 41.0

Re: Custom Buttons

bunda1
Так у этого menuitem'а уже есть oncommand. Тут вот именно так предлагают. Например у этого пункта меню так и сделано.

В общем-то, фиг с ним. Спасибо. :) Просто искал, как попроще сделать.

Отсутствует

 

№847729-05-2015 18:38:11

Jesand
Участник
 
Группа: Members
Зарегистрирован: 13-11-2014
Сообщений: 2
UA: Firefox 38.0

Re: Custom Buttons

Я так понял можно создать кнопку сайта?У меня по какой то причине не работает дополнение Радио Рекорд.Как зоздать кнопку для этого сайта при  помощи Сustom buttons?Это ссылка,я её куда только уже не вставлял,не создаётся кнопка: http://www.radiorecord.ru/player/?from=undock

Отсутствует

 

№847829-05-2015 18:47:42

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 37.0

Re: Custom Buttons

Jesand
Во вкладку Код.

Выделить код

Код:

var profileDir = Components.classes["@mozilla.org/file/directory_service;1"]
    .getService(Components.interfaces.nsIProperties)
    .get("ProfD", Components.interfaces.nsILocalFile)
    .path;
openURL("http://www.radiorecord.ru/player/?from=undock");

Отредактировано villa7 (29-05-2015 18:48:31)


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№847929-05-2015 18:56:02

Jesand
Участник
 
Группа: Members
Зарегистрирован: 13-11-2014
Сообщений: 2
UA: Firefox 38.0

Re: Custom Buttons

villa7
Спасибо огромное!Простым мозгом этого не понять))Читал инструкции,но вобще ничего не понял)

Отсутствует

 

№848030-05-2015 10:08:58

Sekotich
Участник
 
Группа: Members
Зарегистрирован: 21-04-2012
Сообщений: 9
UA: Firefox 37.0
Веб-сайт

Re: Custom Buttons

Скажите пожалуйста, какая команда делает паузу в 1 секунду между выполнением двух разных команд в одной кнопке?Спасибо

Отредактировано Sekotich (30-05-2015 10:49:38)

Отсутствует

 

№848130-05-2015 13:33:32

Sekotich
Участник
 
Группа: Members
Зарегистрирован: 21-04-2012
Сообщений: 9
UA: Firefox 37.0
Веб-сайт

Re: Custom Buttons

okkamas_knife пишет

Sekotich
нет такой.
если нужно выполнить пару команд с разницей во времени используйте setTimeout
№9 - пример

Спасибо! А подскажите пожалуйста еще, есть кнопка, открывающая произвольную внутреннюю ссылку на активной вкладке

Выделить код

Код:

uri = null;
    }
    return uri;
}
var doc = gBrowser. contentDocument;
var cdurl = makeURL (doc. location. href);
cdurl. ref = "";
var links = doc. links;
var inlinks = [];
var curl;
for (var i = 0; i < links. length; i++)
{
    curl = makeURL (links [i]. href);
    if (curl && (curl. host == cdurl. host))
        inlinks. push (links [i]. href);
}
if (inlinks. length != 0)
{
    var ind = Math. floor (Math. random () * inlinks. length);
   loadURI (inlinks [ind], makeURL (gBrowser. contentDocument. location. href));
}

Возможно ли ее переделать, чтобы это же самое действие (открытие произвольной ссылки) происходило на всех вкладках (активной и неактивных)?

Добавлено 30-05-2015 13:52:05

bunda1 пишет

Sekotich пишет: Спасибо! А подскажите пожалуйста еще, есть кнопка, открывающая произвольную внутреннюю ссылку на активной вкладкеВозможно ли ее переделать, чтобы это же самое действие (открытие произвольной ссылки) происходило на всех вкладках (активной и неактивных)?Кажется такой кнопки нет и твой код открывает не произвольную внутреннюю ссылку а все у которых хост совпадает с хостом текущей страницы.

А как сделать, чтобы произвольную внутреннюю и на всех вкладках? :)

Отредактировано Sekotich (30-05-2015 13:52:05)

Отсутствует

 

№848230-05-2015 13:53:57

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

Re: Custom Buttons

Sekotich пишет

А подскажите пожалуйста еще, есть кнопка, открывающая произвольную внутреннюю ссылку на активной вкладке
Возможно ли ее переделать, чтобы это же самое действие (открытие произвольной ссылки) происходило на всех вкладках (активной и неактивных)?

Это которая произвольная ссылка, уточни. И зачем тебе это?

Отредактировано bunda1 (30-05-2015 14:22:47)

Отсутствует

 

№848330-05-2015 17:07:09

Sekotich
Участник
 
Группа: Members
Зарегистрирован: 21-04-2012
Сообщений: 9
UA: Firefox 37.0
Веб-сайт

Re: Custom Buttons

okkamas_knife пишет
Sekotich пишет

чтобы это же самое действие (открытие произвольной ссылки) происходило на всех вкладках (активной и неактивных)?

както так.. в новом лисе не проверял.

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

Выделить код

Код:

var tabs = gBrowser.tabs || gBrowser.tabContainer.childNodes;
for (var i = 0; i < tabs.length ; i++){
var tab = tabs[i];
var lnk2go=[];
var lnks=tab.linkedBrowser.contentDocument.getElementsByTagName('a')
for (var k = 0; k < lnks.length ; k++){
if (lnks[k].href.substring(0,4)=='http'){lnk2go.push(lnks[k].href)}
};
if (lnk2go. length != 0){
    var ind = Math. floor (Math. random () * lnk2go. length);
    tab.linkedBrowser.loadURI (lnk2go[ind]);
    }
};

Спасибо, почти работает! Открывает только любые ссылки на сайте, в том числе и внешние. Возможно ли это подправить?

Добавлено 30-05-2015 17:07:50

bunda1 пишет

И зачем тебе это?

Нужно изобразить нахождение на нескольких ресурсах фоновым режимом...

Добавлено 30-05-2015 17:21:57
Да и вдогонку вопрос, можно ли посылать команду эту, чтобы действие (рандомный переход по внутренней ссылки) выполнялись только для некоторых вкладок, например с 1 по 3 или с 4 по 6? Спасибо

Отредактировано Sekotich (30-05-2015 17:21:57)

Отсутствует

 

№848430-05-2015 22:46:19

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

Re: Custom Buttons

Sekotich пишет

Спасибо, почти работает! Открывает только любые ссылки на сайте, в том числе и внешние. Возможно ли это подправить?
Да и вдогонку вопрос, можно ли посылать команду эту, чтобы действие (рандомный переход по внутренней ссылки) выполнялись только для некоторых вкладок, например с 1 по 3 или с 4 по 6? Спасибо

Выделить код

Код:

var tabs = gBrowser.tabs, host = gBrowser.currentURI.host, urls = [];

for ( var i = 0; i < tabs.length ; i++ ) {
      if ( i > 2 ) break;      
      var tab = tabs[i];      
      var links = tab.linkedBrowser.contentDocument.getElementsByTagName('a')
      
      for ( var k = 0; k < links.length ; k++ ) {
            var link = links[i];
            link.host == host && urls.push(link.href); 
            }
      };

if ( urls.length != 0 )
     gBrowser.addTab( urls[ Math.floor(Math.random()*urls.length) ] );

Отсутствует

 

№848531-05-2015 10:03:38

Sekotich
Участник
 
Группа: Members
Зарегистрирован: 21-04-2012
Сообщений: 9
UA: Firefox 37.0
Веб-сайт

Re: Custom Buttons

bunda1
Спасибо! Только почему-то открывает только для активной вкладки произвольную внутреннюю, а не на всех или на 3-х...

Отсутствует

 

№848631-05-2015 11:06:29

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

Re: Custom Buttons

Sekotich пишет

Спасибо! Только почему-то открывает только для активной вкладки произвольную внутреннюю, а не на всех или на 3-х...

А как нужно?

Отредактировано bunda1 (31-05-2015 11:06:54)

Отсутствует

 

№848731-05-2015 11:20:07

Sekotich
Участник
 
Группа: Members
Зарегистрирован: 21-04-2012
Сообщений: 9
UA: Firefox 37.0
Веб-сайт

Re: Custom Buttons

bunda1 пишет

А как нужно?

Во всех вкладках (неактивных и активной) и желательно подсказать, как чтобы действие происходило во вкладках с первой по третью или с третьей по пятую... Как-то так) Спасибо

Отсутствует

 

№848831-05-2015 17:47:01

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

Re: Custom Buttons

Sekotich пишет

Во всех вкладках (неактивных и активной) и желательно подсказать, как чтобы действие происходило во вкладках с первой по третью или с третьей по пятую... Как-то так) Спасибо

Мой код как раз открывает произвольную внутреннюю ссылку из первых трёх вкладок, вкладки для проверки устанавливаются в строке: if ( i > 2 ) break; и вклада начинаются с 0 потому первые три вкладки до 2.

Отредактировано bunda1 (31-05-2015 17:51:33)

Отсутствует

 

№848931-05-2015 23:28:09

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 37.0

Re: Custom Buttons

bunda1 пишет

Мой код как раз открывает произвольную внутреннюю ссылку из первых трёх вкладок, вкладки для проверки устанавливаются в строке: if ( i > 2 ) break; и вклада начинаются с 0 потому первые три вкладки до 2.

Проверьте пожалуйста у себя, у меня только открывает для активной вкладки...

Отсутствует

 

№849001-06-2015 19:42:18

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

Re: Custom Buttons

Sekotka
Да коде была ошибка, проверь сейчас:

Выделить код

Код:

var tabs = gBrowser.tabs, host = gBrowser.currentURI.host;

for ( var i = 0; i < tabs.length ; i++ ) {
      if ( i > 2 ) break;      
      var tab = tabs[i]; 
      
      alert( tab.linkedBrowser.contentDocument.location );
           
      var links = tab.linkedBrowser.contentDocument.getElementsByTagName('a')
      
      for ( var urls = [], k = 0; k < links.length ; k++ ) {
            var link = links[k];
            link.host == host && urls.push(link.href); 
            }
      };

if ( urls.length != 0 )
     gBrowser.addTab( urls[ Math.floor(Math.random()*urls.length+1) ] );

потом удали из кода alert( tab.linkedBrowser.contentDocument.location );

Отсутствует

 

№849102-06-2015 10:01:46

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 37.0

Re: Custom Buttons

bunda1 пишет

Да коде была ошибка, проверь сейчас

Да, тоже не работает :(
Теперь если сделать активной вкладкой 3-ю, тогда загружает произвольную ссылку только в ней, в других активных вкладках молчок, внутренние вообще не грузит...

Отсутствует

 

№849202-06-2015 16:19:36

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

Re: Custom Buttons

Подскажите пожалуйста такой вопрос:
Может ли кнопка работать с файлами карты сайта http://site.ru/sitemap.xml?

Отсутствует

 

№849302-06-2015 20:57:42

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

Re: Custom Buttons

Sekotka пишет

Да, тоже не работает :(
Теперь если сделать активной вкладкой 3-ю, тогда загружает произвольную ссылку только в ней, в других активных вкладках молчок, внутренние вообще не грузит...

У меня всё работает, может мы просто не понимаем друг друга.

Отсутствует

 

№849403-06-2015 10:34:19

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 37.0

Re: Custom Buttons

bunda1 пишет
Sekotka пишет

Да, тоже не работает :(
Теперь если сделать активной вкладкой 3-ю, тогда загружает произвольную ссылку только в ней, в других активных вкладках молчок, внутренние вообще не грузит...

У меня всё работает, может мы просто не понимаем друг друга.

Допустим у меня открыто 8 вкладок. Кнопочка должна на первых 4-х (с 1 по 4) вкладках фоном переходить по рандомной внутренней ссылке. С 5 по 8-ю соответственно ничего не делать. При этом не важно, какая вкладка активная, а какая нет. Пока же кнопочка вообще почти не работает. Если активная вкладка 1, 2, 4, 5, 6 и тд. - она вообще ничего не делает, а если активная вкладка 3-я, то происходит переход (только в этой самой активной вкладке). Нужно по сути чтобы фоном происходили действия...

Отсутствует

 

№849503-06-2015 12:58:31

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

Re: Custom Buttons

Sekotka пишет

Допустим у меня открыто 8 вкладок. Кнопочка должна на первых 4-х (с 1 по 4) вкладках фоном переходить по рандомной внутренней ссылке. С 5 по 8-ю соответственно ничего не делать. При этом не важно, какая вкладка активная, а какая нет. Пока же кнопочка вообще почти не работает. Если активная вкладка 1, 2, 4, 5, 6 и тд. - она вообще ничего не делает, а если активная вкладка 3-я, то происходит переход (только в этой самой активной вкладке). Нужно по сути чтобы фоном происходили действия...

Может попробуй так:

Выделить код

Код:

for ( var tabs = gBrowser.tabs, i = 0; i < tabs.length ; i++ ) {
      if ( i > 2 ) break;      
      
      var tab = tabs[i]; 
      var host = tab.linkedBrowser.contentDocument.domain;           
      var links = tab.linkedBrowser.contentDocument.getElementsByTagName('a')
      
      for ( var urls = [], k = 0; k < links.length ; k++ ) {
            var link = links[k];
            link.host == host && urls.push(link.href); 
            }
      };

if ( urls.length != 0 )
     gBrowser.addTab( urls[ Math.floor(Math.random()*urls.length+1) ] );

Отредактировано bunda1 (03-06-2015 13:11:11)

Отсутствует

 

№849603-06-2015 17:19:12

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 37.0

Re: Custom Buttons

bunda1 пишет

Может попробуй так:

Опять не работает(
В варианте okkamas_knife работало как надо, только с двумя нюансами - там открывал любые ссылки с сайта (внутренние и внешние) и вот вопрос был, как изменить, чтоб действие применялось на вкладках с 1 по 3-ю.

Отсутствует

 

№849703-06-2015 18:37:01

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

Re: Custom Buttons

Sekotka пишет

В варианте okkamas_knife работало как надо, только с двумя нюансами - там открывал любые ссылки с сайта (внутренние и внешние) и вот вопрос был, как изменить, чтоб действие применялось на вкладках с 1 по 3-ю.

Ну тогда не знаю :/

Отсутствует

 

№849804-06-2015 01:41:50

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

Re: Custom Buttons

Здравствуйте! Есть файл .txt со списком доменов. Как сделать кнопку, при нажатии на которую randomom открывался один из доменов из domains.txt?

Спасибо!

Отсутствует

 

№849904-06-2015 03:29:44

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 38.0

Re: Custom Buttons

Всем доброго времени суток.

Проблема может проста или не очень - я не знаю.
Когда то 2-года назад я написал кнопку которая запоминала текущие содержимое буфера обмена в виде стека глубиной произвольной, по умолчанию 15 для FF - она и сейчас работает.
Решил в лоб перетянуть её в Mozilla Thunderbird - не пашет... искал ошибку долго не нашёл и решил спросить тут.

JS-скрипт привожу полностью что бы избежать коллизий (кнопка на форуме опубликована).

Clipboard
/*Initialization Code*/

//Автор Indomito 01.09.2014

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Блок инициализации глоб. переменных и функций
// срок существования - один сеанс браузера
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//*********Begin section descriptions of functions*********
//Функции которые вызываются из разных кнопок

//Запуск внешней программы
WindowStartProcess = function (path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
     file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
       process.init(file);
        process.run(false, args, args.length);
      } else custombuttons. alertBox ("Файл не найден", path);
};

//*********End section descriptions the functions*********


bbBBCodeStat=true                                                   // разрешить/включить BBCode
window.arycb_BBCodeClipboardStrings = this.clipboardStrings = [];   // Массив буфера обмена

//********************************************************
//--------Общие функции для вставки BBCode----------------
//*********************************************************

//++++++++++++++++++BEGIN DEF++++++++++++++++++++++++++++++
//--------------------------------------------------------
// Функция lb_BBCodePrim
// [bbCode]выделенный[/bbCode]
//  по умолчанию от ЛКМ)
lb_BBCodePrim = function (open,close){
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos);
text +=open+theBox.value.substring(startPos, endPos)+close;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
var nHeight = theBox.scrollHeight - oHeight;
theBox.scrollTop = oPosition + nHeight;
};

//---------------------------------------------------------
// Функция mb_BBCodePrim
// Резерв
// по умолчанию от CКМ
mb_BBCodePrim = function (open,close) {};

// -------------------------------------------------------
// Функция rb_BBCodePrim
// [bbCode]параметр PASTE по умолчанию из буфер обмена[/bbCode]
// по умолчанию от ПКМ
rb_BBCodePrim = function (open,close,paste){
if (paste == undefined)  { open +=close;} //буфер обмена пуст
   else                 { open +=paste+close;}
   
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var selectionLen = endPos - startPos
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos);
var nHeight = theBox.scrollHeight - oHeight;
text +=open;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
theBox.selectionStart = endPos + open.length;
theBox.selectionEnd = endPos + open.length - selectionLen;
theBox.scrollTop = oPosition + nHeight;
};

// -------------------------------------------------------
// Функция fHLD_Get_ListClipboardPrim
// получить список сохранёного буфера обмена
//
fnHLD_Get_ListClipboardPrim = function (){
var cs = arycb_BBCodeClipboardStrings;
return (cs.slice(0));
};


//++++++++++++++++++END DEF+++++++++++++++++++++++++++++++++++

//Список сохранёного буфера обмена
//Не вызываем это, обработка по таймеру или по событию ЛКМ
//-----Обработчики буфера обмена

this.MAX_ENTRIES = 16;               //Максимальное число записей 16
this.CHECK_INTERVAL = 1000;      //Время опроса буфера 1000 миллисекунд
this.type = "menu";
this.orient = "horizontal";
this._menupopup = this.appendChild(document.createElement("menupopup"));
this._menupopup.setAttribute("oncommand", "this.parentNode.handleCommand(event.target);");



this.checkClipboard = function() {
    var clipStr = readFromClipboard();
    if(clipStr && this.clipboardStrings.indexOf(clipStr) == -1)
        this.storeString(clipStr);
};


this.storeString = function(str) {
    var cs = this.clipboardStrings;
    cs.push(str);
    while(cs.length > this.MAX_ENTRIES)
        cs.shift();

    var mi = document.createElement("menuitem");
    mi.setAttribute("label", str);
   
   
    this._menupopup.appendChild(mi);
    while(this._menupopup.childNodes.length > this.MAX_ENTRIES)
        this._menupopup.removeChild(this._menupopup.firstChild);
};


this.handleCommand = function(mi) {
    var indx = Array.indexOf(mi.parentNode.childNodes, mi);
    if(indx != -1)
        this.insertText(this.clipboardStrings[indx]);
};

this.insertText = function(str) {
    var cmd = "cmd_insertText";
    var controller = document.commandDispatcher.getControllerForCommand(cmd);
    if(controller && controller.isCommandEnabled(cmd)) {
        controller = controller.QueryInterface(Components.interfaces.nsICommandController);
        var params = Components.classes["@mozilla.org/embedcomp/command-params;1"]
            .createInstance(Components.interfaces.nsICommandParams);
        params.setStringValue("state_data", str);
        controller.doCommandWithParams(cmd, params);
    }
};

setInterval(function(button) {
    button.checkClipboard();
}, this.CHECK_INTERVAL, this);

this.setAttribute("onpopupshowing", "this.checkClipboard();");]


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№850004-06-2015 04:45:48

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 38.0

Re: Custom Buttons

/Блин забыл глянуть....сек.

Вот только одна ошибка

Метка времени: 04.06.2015 4:55:50
Ошибка: Failed to clone button-getAllNewMsg
Источник: resource://mintrayr/mintrayr.jsm
Строка: 124

но она не связана  с кнопкой Стека Буфера Обмена - перепроверил.

Отредактировано Indomito (04-06-2015 05:03:32)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

Board footer

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