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

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

№415121-06-2012 19:27:50

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

а для сохранения юзай DTA очень удобная штука - там есть настраиваемые фильтры так что сохранение нужного можно в два клика организовать.

okkamas_knife , Штука то удобная, но там же нельзя визуально сопоставить линк с  картинкой - так как это делается в "Информация о странице" ;)

u1jPZs.png

Отредактировано Крошка Ру (21-06-2012 19:29:01)

Отсутствует

 

№415223-06-2012 01:03:49

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

moorzilla@mail.ru пишет

Знатоки CB и JavaScript помогите пожалуйста еще раз :)

Я нашел пример интересного всплывающего окна, которое грузит в себя HTML-страничку, но не могу понять как сделать так чтобы такое небольшое окно появлялось при нажатии на кнопку кнопку Custom Buttons
http://kpa-ing.ru/Different/Vsplyv_okno.htm
Думаю такая кнопка и другим бы очень пригодилась, ведь в рамках такого окошка можно реализовать много чего интересного

Не нашёл комментария - ответа , а всё же хотелось бы узнать -возможно ли такое средствами CB ? :angel:

Отсутствует

 

№415323-06-2012 08:13:24

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

Можно кнопочку, добавляющую в контекстное меню браузера пункт "Открыть страницу  в другом профиле Firefox" ? :angel:

Отредактировано Крошка Ру (23-06-2012 09:18:07)

Отсутствует

 

№415423-06-2012 08:17:49

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

Re: Custom Buttons

Крошка Ру пишет

http://kpa-ing.ru/Different/Vsplyv_okno.htm
Не нашёл комментария - ответа , а всё же хотелось бы узнать -возможно ли такое средствами CB ? :angel:
Думаю такая кнопка и другим бы очень пригодилась, ведь в рамках такого окошка можно реализовать много чего интересного

Что ты имеешь в виду ?

Отредактировано bunda1 (23-06-2012 08:18:45)

Отсутствует

 

№415523-06-2012 09:17:28

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

Что ты имеешь в виду ?

bunda1 , Чтобы из кнопки появлялось popup - окошко

STTyws.png

отображающее вставленный в него html - код :)

Отсутствует

 

№415623-06-2012 09:34:44

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: Firefox 13.0

Re: Custom Buttons

Крошка Ру можно например как дополнение к кнопке Link  Master (Context menu):

function command55555(){
var urllink=gContextMenu.linkURL;
startProcess(firefox,["-no-remote","-P","Имя вашего профиля",urllink]);
function startProcess(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);}
 
  };
}

Отсутствует

 

№415723-06-2012 16:45:13

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

Andrey_Krropotkin, Попробовал подставить ... не работает:)


Выделить код

Код:

function command12(){
var urllink=gContextMenu.linkURL;
startProcess(firefox,["-no-remote","-P","Test","C:\\Program Files\\Aurora\\firefox.exe"]);
function startProcess(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);}
 
  };
}

что тут неправильно? :blush:

Добавлено 23-06-2012 16:50:35
....или не там править нужно было :rolleyes: может этот кусок ?

Выделить код

Код:

var this_=this;
var folderpath="C:\\SAVEDURLS";// папка для сохранения ярлыков
var profilepath='S:\\SNARK\\!wwwmy\\FirefoxPortable\\Data\\profile'; // Путь до папки с другим профилем Firefox
var firefox="S:\\SNARK\\!wwwmy\\FirefoxPortable\\App\\Firefox\\firefox.exe"; // путь до Firefox по-умолчанию, 
// если намерены использовать другую версию для "Открыть в другом профиле Firefox" то укажите свой путь.

Отредактировано Крошка Ру (23-06-2012 16:50:35)

Отсутствует

 

№415823-06-2012 19:54:36

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: Firefox 13.0

Re: Custom Buttons

Можно так же использовать относительный путь, если будете использовать Portable версию
// путь до папки с firefox.exe, в данном случае Aurora
var profileDir = Components.classes["@mozilla.org/file/directory_service;1"]
    .getService(Components.interfaces.nsIProperties)
    .get("CurProcD", Components.interfaces.nsILocalFile)
    .path;
// путь до firefox.exe   
var firefox = profileDir + "\\..\\Aurora\\firefox.exe";


startProcess(firefox,["-no-remote","-P","Test",url]);

Отсутствует

 

№415923-06-2012 21:19:02

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

Andrey_Krropotkin,Спасибо :)

okkamas_knife , Вот так работает - Спасибо :)

Выделить код

Код:

function command12(){
var url=content.document.location.href;
startProcess("C:\\Program Files\\Aurora\\firefox.exe",["-no-remote","-P","Test",url]);

function startProcess(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); 
};
}

а до этого сам смог додуматься :lol: >

заменить на

Выделить код

Код:

label:"Открыть страницу в другом профиле Firefox",

... теперь надо будет почистить код от лишних пунктов и  "Link Master" заменить на "Открыть страницу в другом профиле Firefox" а в label: вписать имя профиля :sick:

Добавлено 23-06-2012 21:45:23
Попробовал удалить - добавить :) .... кнопка стала неактивной - что там неправильно? :angel:

Выделить код

Код:

var this_=this;
var folderpath="C:\\SAVEDURLS";// папка для сохранения ярлыков
var profilepath='S:\\SNARK\\!wwwmy\\FirefoxPortable\\Data\\profile'; // Путь до папки с другим профилем Firefox
var firefox="S:\\SNARK\\!wwwmy\\FirefoxPortable\\App\\Firefox\\firefox.exe"; // путь до Firefox по-умолчанию, 
// если намерены использовать другую версию для "Открыть в другом профиле Firefox" то укажите свой путь.

this.tooltipText="Link  Master (Context menu)-Расширенное контекстное меню при клике на ссылку.\nЛКМ-сделать ссылки видимыми > Очень видимыми > Вернуть исходный вид(обновляет страницу)\nи так по кругу.\nПКМ-меню кнопки,настройки меню в секции Инициализация\nНе забудьте перезапустить Firefox после внесения изменений!\nСКМ - открывает пост с кнопкой на http://forum.mozilla-russia.org";
vislink42=1;
var fficon="data:image/gif;base64,R0lGODlhFAAUAIcAANLOxsXBu4ifs1aVunu/11umx0yRvGGFprOvs8/KwmuTq5vY5YSEZaGIVeSVS1NTeB5yqrurfoK4vmm50HKyvp+RaPjLL/C/OM2zktTLu+B4H+KBKNOWZH3K2jFWj1BMSvbZKfC4F9HBs95zGspWFK+DVn6QkGCwzFmhwIafjvauBrikUr65td2kZt14J9qicjl+qBZWifGzIdm7DaOdj+SLNt5yFXuhoRhKfAc5bfzbRvbGGZSAXKktCnuBhjhumg0rYAgiVykvWfbEJGhYOtRcF7c0B3N1hE1/r19+lURqogYaTgcQRkpHYvO0M/jUBNJUFtdKBrx1OwMINVJabPnbNubLW2dhXMpyWtloEeJkDMpJDJYpDY4zIzUvOko3SLdxK/bKCPzgU62VR4iEg8y2sMo9D6ZXJyANc1A0IttwH+eXCPbHR/7yLVZGI7hQQNByKuWNCaeLFqw0HrkYCMY1E9pnHM6eBkM3Lca2pLIDAroRCr0gC6ZuCrSuo5JoYZgYC68iEH0uE5eSi3xza21oZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUIAIYALAAAAAAUABQAAAj/AA0JHGgIgEEABBMSNCihQIcCBRQYVCiQ4QkCBBYsICCAQYWJC1s8gFAggoSNEyhUsMBGBMiCGxw42MAB44QOBDx8ALEDA0KBGTQIdQGlhIkJSFEUSKFixU8ALzbYGDHCxQsBBWDEgDEghYwZNCrWmEp1w40CBnDkwAGDgY4hFYBu0DACSg8fCgag+AEkiJAGIIYQqViEbg8jR5AgSaJkCZMmTp6A+FMRytQoUWxIceGCx5QpVKqEsHKlIhYtI7Jo2cKli5fPX8CEETMmbEUzWUbYsHHmCxomadSsYdPGTYCBAN6YUZNltxo4aqjGaSOn0M+Kc/jUqVPEzgg1NuI8N7mDp0xCAGXm6NmzR/uWLHH64GFxHTmAP10A7QnUQ1CaK/RRVFEAgxBSCCE0BPCSgAw26CBBAQEAOw==";

var mnusav="Сохранить ярлык в папку "+folderpath;
(function LinkMasterMenu(){

const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";

    var contextMenu = document.getElementById("contentAreaContextMenu");
    var separator = document.getElementById("context-bookmarklink");
    var eventTarget = null;

    var menu = document.createElementNS(kXULNS, "menu");
    menu.id = "LinkMasterMenu";
    menu.setAttribute("label", "Открыть в другом профиле Firefox>");
    menu.setAttribute("class", "menu-iconic");
    menu.setAttribute("image", lmicon);
    menu.hidden = true;
    contextMenu.insertBefore(menu, separator );

    var menuPopup = document.createElementNS(kXULNS, "menupopup");
    menu.appendChild(menuPopup);

      var lst = [
        { 
          label:"Test",
          command:command1,
          image:fficon
        },
     var lst = [
        { 
          label:"ИМЯ ПРОФИЛЯ",
          command:command2,
          image:fficon
        },   
     var lst = [
        { 
          label:"ИМЯ ПРОФИЛЯ",
          command:command3,
          image:fficon
        },];
    
for(var i = 0, m; m = lst[i]; i++){
    if (m.label=="separator"){
     var menuItem = document.createElementNS(kXULNS, "menuseparator");
         menuItem.id = "context-Demo-Menu-" + m.label.toString();
        menuPopup.appendChild(menuItem);

    }
       else{
        var menuItem = document.createElementNS(kXULNS, "menuitem");
        menuItem.setAttribute("label", m.label);
        menuItem.setAttribute("class", "menuitem-iconic");
        menuItem.setAttribute("image", m.image);
        menuItem.setAttribute("type", "m.radio");
        menuItem.addEventListener("command", m.command, false);
        menuItem.id = "context-Demo-Menu-" + m.label.toString();
        menuPopup.appendChild(menuItem);
        }
        
    }
    contextMenu.addEventListener("popupshowing", setMenuDisplay, false);

 function setMenuDisplay(aEvent) {
                 if (gContextMenu.onLink)
                 {
                 document.getElementById("LinkMasterMenu").hidden = false;
                 }
                 else
                 document.getElementById("LinkMasterMenu").hidden = true;
                   }  

//------------------------------------------------------
//-----------------------------------------------------
function command1(){
var url=content.document.location.href;
startProcess("C:\\Program Files\\Aurora\\firefox.exe",["-no-remote","-P","Test",url]);

function startProcess(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); 
};
}
//------------------------------------------------------
//-----------------------------------------------------
function command2(){
var url=content.document.location.href;
startProcess("C:\\Program Files\\< >\\firefox.exe",["-no-remote","-P","ИМЯ ПРОФИЛЯ",url]);

function startProcess(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); 
};
}
//------------------------------------------------------
//-----------------------------------------------------
function command3(){
var url=content.document.location.href;
startProcess("C:\\Program Files\\< >\\firefox.exe",["-no-remote","-P","ИМЯ ПРОФИЛЯ",url]);

function startProcess(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); 
};
}
})();
this.onclick = function(event) {
    if(event.button == 1) {
getBrowser (). addTab ("http://forum.mozilla-russia.org/viewtopic.php?pid=533522#p533522");
    };
   

};

.... наверное какие-нибудь закорючки пропустил и разрывы в коде допустил :blush:

Отредактировано Крошка Ру (23-06-2012 21:47:26)

Отсутствует

 

№416023-06-2012 21:53:10

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

var lst = [ - лишние удалить?

Отредактировано Крошка Ру (23-06-2012 21:54:17)

Отсутствует

 

№416123-06-2012 22:26:01

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

так работает >

Выделить код

Код:

var this_=this;
var folderpath="C:\\SAVEDURLS";// папка для сохранения ярлыков
var profilepath='S:\\SNARK\\!wwwmy\\FirefoxPortable\\Data\\profile'; // Путь до папки с другим профилем Firefox
var firefox="S:\\SNARK\\!wwwmy\\FirefoxPortable\\App\\Firefox\\firefox.exe"; // путь до Firefox по-умолчанию, 
// если намерены использовать другую версию для "Открыть в другом профиле Firefox" то укажите свой путь.

this.tooltipText="Link  Master (Context menu)-Расширенное контекстное меню при клике на ссылку.\nЛКМ-сделать ссылки видимыми > Очень видимыми > Вернуть исходный вид(обновляет страницу)\nи так по кругу.\nПКМ-меню кнопки,настройки меню в секции Инициализация\nНе забудьте перезапустить Firefox после внесения изменений!\nСКМ - открывает пост с кнопкой на http://forum.mozilla-russia.org";
vislink42=1;
var lmicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAFVBMVEUAAJkAAP8AMwAAZgAAAAAAmQD////7HhmTAAAAB3RSTlP///////8AGksDRgAAAAFiS0dEBmFmuH0AAAAJcEhZcwAACxMAAAsTAQCanBgAAABSSURBVHjaY2BLYwOhBAa2tDQQgw3IYGMAIQYwFyrClgBSw8AGVZwGBQyCUIAQSVIGksnGaQxOymZpacZGagxAXmiwMVAKyDAFM+BSEMVGaXDtADaGHx7bD2cMAAAAAElFTkSuQmCC";
var fficon="data:image/gif;base64,R0lGODlhFAAUAIcAANLOxsXBu4ifs1aVunu/11umx0yRvGGFprOvs8/KwmuTq5vY5YSEZaGIVeSVS1NTeB5yqrurfoK4vmm50HKyvp+RaPjLL/C/OM2zktTLu+B4H+KBKNOWZH3K2jFWj1BMSvbZKfC4F9HBs95zGspWFK+DVn6QkGCwzFmhwIafjvauBrikUr65td2kZt14J9qicjl+qBZWifGzIdm7DaOdj+SLNt5yFXuhoRhKfAc5bfzbRvbGGZSAXKktCnuBhjhumg0rYAgiVykvWfbEJGhYOtRcF7c0B3N1hE1/r19+lURqogYaTgcQRkpHYvO0M/jUBNJUFtdKBrx1OwMINVJabPnbNubLW2dhXMpyWtloEeJkDMpJDJYpDY4zIzUvOko3SLdxK/bKCPzgU62VR4iEg8y2sMo9D6ZXJyANc1A0IttwH+eXCPbHR/7yLVZGI7hQQNByKuWNCaeLFqw0HrkYCMY1E9pnHM6eBkM3Lca2pLIDAroRCr0gC6ZuCrSuo5JoYZgYC68iEH0uE5eSi3xza21oZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUIAIYALAAAAAAUABQAAAj/AA0JHGgIgEEABBMSNCihQIcCBRQYVCiQ4QkCBBYsICCAQYWJC1s8gFAggoSNEyhUsMBGBMiCGxw42MAB44QOBDx8ALEDA0KBGTQIdQGlhIkJSFEUSKFixU8ALzbYGDHCxQsBBWDEgDEghYwZNCrWmEp1w40CBnDkwAGDgY4hFYBu0DACSg8fCgag+AEkiJAGIIYQqViEbg8jR5AgSaJkCZMmTp6A+FMRytQoUWxIceGCx5QpVKqEsHKlIhYtI7Jo2cKli5fPX8CEETMmbEUzWUbYsHHmCxomadSsYdPGTYCBAN6YUZNltxo4aqjGaSOn0M+Kc/jUqVPEzgg1NuI8N7mDp0xCAGXm6NmzR/uWLHH64GFxHTmAP10A7QnUQ1CaK/RRVFEAgxBSCCE0BPCSgAw26CBBAQEAOw==";
var mnusav="Сохранить ярлык в папку "+folderpath;
(function LinkMasterMenu(){

 
    const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";

    var contextMenu = document.getElementById("contentAreaContextMenu");
    var separator = document.getElementById("context-bookmarklink");
    var eventTarget = null;

    var menu = document.createElementNS(kXULNS, "menu");
    menu.id = "LinkMasterMenu";
    menu.setAttribute("label", "Открыть в другом профиле Firefox>");
    menu.setAttribute("class", "menu-iconic");
    menu.setAttribute("image", lmicon);
    menu.hidden = true;
    contextMenu.insertBefore(menu, separator );

    var menuPopup = document.createElementNS(kXULNS, "menupopup");
    menu.appendChild(menuPopup);

      var lst = [
        {
          label:"Test",
          command:command12,
          image:fficon
        },
        ];
    
for(var i = 0, m; m = lst[i]; i++){
    if (m.label=="separator"){
     var menuItem = document.createElementNS(kXULNS, "menuseparator");
         menuItem.id = "context-Demo-Menu-" + m.label.toString();
        menuPopup.appendChild(menuItem);

    }
       else{
        var menuItem = document.createElementNS(kXULNS, "menuitem");
        menuItem.setAttribute("label", m.label);
        menuItem.setAttribute("class", "menuitem-iconic");
        menuItem.setAttribute("image", m.image);
        menuItem.setAttribute("type", "m.radio");
        menuItem.addEventListener("command", m.command, false);
        menuItem.id = "context-Demo-Menu-" + m.label.toString();
        menuPopup.appendChild(menuItem);
        }
        
    }
    contextMenu.addEventListener("popupshowing", setMenuDisplay, false);

 function setMenuDisplay(aEvent) {
                 if (gContextMenu.onLink)
                 {
                 document.getElementById("LinkMasterMenu").hidden = false;
                 }
                 else
                 document.getElementById("LinkMasterMenu").hidden = true;
//------------------------------------------------------
//-----------------------------------------------------
function command10(){
var url=content.document.location.href;
startProcess("C:\\Program Files\\\\firefox.exe",["-no-remote","-P","",url]);

function startProcess(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); 
};
}                   }  
//------------------------------------------------------
//-----------------------------------------------------
function command11(){
var url=content.document.location.href;
startProcess("C:\\Program Files\\\\firefox.exe",["-no-remote","-P","",url]);

function startProcess(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); 
};
}
//------------------------------------------------------
//-----------------------------------------------------
function command12(){
var url=content.document.location.href;
startProcess("C:\\Program Files\\Aurora\\firefox.exe",["-no-remote","-P","Test",url]);

function startProcess(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); 
};
}


})();
this.onclick = function(event) {
    if(event.button == 1) {
getBrowser (). addTab ("http://forum.mozilla-russia.org/viewtopic.php?pid=533522#p533522");
    };
   

};

но когда пытаюсь добавить новые label

Выделить код

Код:

{
          label:"",
          command:command10,
          image:fficon
        },

{
          label:"",
          command:command11,
          image:fficon
        },

кнопка становится неактивной :dumb:

Отсутствует

 

№416224-06-2012 01:15:41

vital32
Участник
 
Группа: Members
Зарегистрирован: 23-06-2012
Сообщений: 169
UA: Firefox 12.0

Re: Custom Buttons

а как можно создать кнопку для отключения-включения shockwave Flash

Отсутствует

 

№416324-06-2012 01:36:50

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

Re: Custom Buttons

vital32 пишет

кнопку для отключения-включения shockwave Flash

Можно, только я не уверен, что там постоянный id. :)

В инициализацию:

Выделить код

Код:

const addonId = "{8b46070c-bec0-bf24-366c-bc77e425e7a6}"; // Shockwave Flash

Components.utils.import("resource://gre/modules/AddonManager.jsm");
var addonListener = {
    button: this,
    onEnabled: function(addon) {
        if(addon.id == addonId)
            this.button.checked = true;
    },
    onDisabled: function(addon) {
        if(addon.id == addonId)
            this.button.checked = false;
    }
};
AddonManager.addAddonListener(addonListener);
this.onDestroy = function() {
    AddonManager.removeAddonListener(addonListener);
};

this.onclick = function(e) {
    if(e.button == 0) {
        AddonManager.getAddonByID(addonId, function(addon) {
            addon.userDisabled = !addon.userDisabled;
        });
    }
};

var button = this;
AddonManager.getAddonByID(addonId, function(addon) {
    button.checked = !addon.userDisabled;
});

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

Отсутствует

 

№416424-06-2012 01:55:24

vital32
Участник
 
Группа: Members
Зарегистрирован: 23-06-2012
Сообщений: 169
UA: Firefox 12.0

Re: Custom Buttons

Infocatcher пишет

vital32 пишет: кнопку для отключения-включения shockwave FlashМожно, только я не уверен, что там постоянный id. В инициализацию:Выделить кодКод:const addonId = "{8b46070c-bec0-bf24-366c-bc77e425e7a6}"; // Shockwave Flash

Components.utils.import("resource://gre/modules/AddonManager.jsm");
var addonListener = {
    button: this,
    onEnabled: function(addon) {
        if(addon.id == addonId)
            this.button.checked = true;
    },
    onDisabled: function(addon) {
        if(addon.id == addonId)
            this.button.checked = false;
    }
};
AddonManager.addAddonListener(addonListener);
this.onDestroy = function() {
    AddonManager.removeAddonListener(addonListener);
};

this.onclick = function(e) {
    if(e.button == 0) {
        AddonManager.getAddonByID(addonId, function(addon) {
            addon.userDisabled = !addon.userDisabled;
        });
    }
};

var button = this;
AddonManager.getAddonByID(addonId, function(addon) {
    button.checked = !addon.userDisabled;
});

Нет не работает,

Отсутствует

 

№416524-06-2012 04:21:51

vital32
Участник
 
Группа: Members
Зарегистрирован: 23-06-2012
Сообщений: 169
UA: Firefox 12.0

Re: Custom Buttons

ну то как сделать кнопку отключения включения флеш

Отсутствует

 

№416624-06-2012 04:51:55

2k1dmg
Участник
 
Группа: Members
Зарегистрирован: 06-04-2011
Сообщений: 190
UA: Firefox 13.0

Re: Custom Buttons

vital32
Работает и этот тоже http://forum.mozilla-russia.org/viewtop … 93#p568393

Отсутствует

 

№416724-06-2012 04:54:42

vital32
Участник
 
Группа: Members
Зарегистрирован: 23-06-2012
Сообщений: 169
UA: Firefox 12.0

Re: Custom Buttons

2k1dmg пишет

vital32
Работает и этот тоже http://forum.mozilla-russia.org/viewtop … 93#p568393

не работает я ж написал внизу

Отсутствует

 

№416824-06-2012 05:27:14

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

в конце запятая лишняя

okkamas_knife ,без запятой тоже самое :rolleyes:

и вот тут же запятая не мешает
var lst = [
        {
          label:"Test",
          command:command12,
          image:fficon
        },
        ];

Выделить код

Код:

var this_=this;
var folderpath="C:\\SAVEDURLS";// папка для сохранения ярлыков
var profilepath='S:\\SNARK\\!wwwmy\\FirefoxPortable\\Data\\profile'; // Путь до папки с другим профилем Firefox
var firefox="S:\\SNARK\\!wwwmy\\FirefoxPortable\\App\\Firefox\\firefox.exe"; // путь до Firefox по-умолчанию, 
// если намерены использовать другую версию для "Открыть в другом профиле Firefox" то укажите свой путь.

this.tooltipText="Link  Master (Context menu)-Расширенное контекстное меню при клике на ссылку.\nЛКМ-сделать ссылки видимыми > Очень видимыми > Вернуть исходный вид(обновляет страницу)\nи так по кругу.\nПКМ-меню кнопки,настройки меню в секции Инициализация\nНе забудьте перезапустить Firefox после внесения изменений!\nСКМ - открывает пост с кнопкой на http://forum.mozilla-russia.org";
vislink42=1;
var lmicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAFVBMVEUAAJkAAP8AMwAAZgAAAAAAmQD////7HhmTAAAAB3RSTlP///////8AGksDRgAAAAFiS0dEBmFmuH0AAAAJcEhZcwAACxMAAAsTAQCanBgAAABSSURBVHjaY2BLYwOhBAa2tDQQgw3IYGMAIQYwFyrClgBSw8AGVZwGBQyCUIAQSVIGksnGaQxOymZpacZGagxAXmiwMVAKyDAFM+BSEMVGaXDtADaGHx7bD2cMAAAAAElFTkSuQmCC";
var fficon="data:image/gif;base64,R0lGODlhFAAUAIcAANLOxsXBu4ifs1aVunu/11umx0yRvGGFprOvs8/KwmuTq5vY5YSEZaGIVeSVS1NTeB5yqrurfoK4vmm50HKyvp+RaPjLL/C/OM2zktTLu+B4H+KBKNOWZH3K2jFWj1BMSvbZKfC4F9HBs95zGspWFK+DVn6QkGCwzFmhwIafjvauBrikUr65td2kZt14J9qicjl+qBZWifGzIdm7DaOdj+SLNt5yFXuhoRhKfAc5bfzbRvbGGZSAXKktCnuBhjhumg0rYAgiVykvWfbEJGhYOtRcF7c0B3N1hE1/r19+lURqogYaTgcQRkpHYvO0M/jUBNJUFtdKBrx1OwMINVJabPnbNubLW2dhXMpyWtloEeJkDMpJDJYpDY4zIzUvOko3SLdxK/bKCPzgU62VR4iEg8y2sMo9D6ZXJyANc1A0IttwH+eXCPbHR/7yLVZGI7hQQNByKuWNCaeLFqw0HrkYCMY1E9pnHM6eBkM3Lca2pLIDAroRCr0gC6ZuCrSuo5JoYZgYC68iEH0uE5eSi3xza21oZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUIAIYALAAAAAAUABQAAAj/AA0JHGgIgEEABBMSNCihQIcCBRQYVCiQ4QkCBBYsICCAQYWJC1s8gFAggoSNEyhUsMBGBMiCGxw42MAB44QOBDx8ALEDA0KBGTQIdQGlhIkJSFEUSKFixU8ALzbYGDHCxQsBBWDEgDEghYwZNCrWmEp1w40CBnDkwAGDgY4hFYBu0DACSg8fCgag+AEkiJAGIIYQqViEbg8jR5AgSaJkCZMmTp6A+FMRytQoUWxIceGCx5QpVKqEsHKlIhYtI7Jo2cKli5fPX8CEETMmbEUzWUbYsHHmCxomadSsYdPGTYCBAN6YUZNltxo4aqjGaSOn0M+Kc/jUqVPEzgg1NuI8N7mDp0xCAGXm6NmzR/uWLHH64GFxHTmAP10A7QnUQ1CaK/RRVFEAgxBSCCE0BPCSgAw26CBBAQEAOw==";
var mnusav="Сохранить ярлык в папку "+folderpath;
(function LinkMasterMenu(){

 
    const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";

    var contextMenu = document.getElementById("contentAreaContextMenu");
    var separator = document.getElementById("context-bookmarklink");
    var eventTarget = null;

    var menu = document.createElementNS(kXULNS, "menu");
    menu.id = "LinkMasterMenu";
    menu.setAttribute("label", "Открыть в другом профиле Firefox>");
    menu.setAttribute("class", "menu-iconic");
    menu.setAttribute("image", lmicon);
    menu.hidden = true;
    contextMenu.insertBefore(menu, separator );

    var menuPopup = document.createElementNS(kXULNS, "menupopup");
    menu.appendChild(menuPopup);

      var lst = [
        {
          label:"Test",
          command:command12,
          image:fficon
        },
        ];
    
for(var i = 0, m; m = lst[i]; i++){
    if (m.label=="separator"){
     var menuItem = document.createElementNS(kXULNS, "menuseparator");
         menuItem.id = "context-Demo-Menu-" + m.label.toString();
        menuPopup.appendChild(menuItem);

    }
       else{
        var menuItem = document.createElementNS(kXULNS, "menuitem");
        menuItem.setAttribute("label", m.label);
        menuItem.setAttribute("class", "menuitem-iconic");
        menuItem.setAttribute("image", m.image);
        menuItem.setAttribute("type", "m.radio");
        menuItem.addEventListener("command", m.command, false);
        menuItem.id = "context-Demo-Menu-" + m.label.toString();
        menuPopup.appendChild(menuItem);
        }
        
    }
    contextMenu.addEventListener("popupshowing", setMenuDisplay, false);

 function setMenuDisplay(aEvent) {
                 if (gContextMenu.onLink)
                 {
                 document.getElementById("LinkMasterMenu").hidden = false;
                 }
                 else
                 document.getElementById("LinkMasterMenu").hidden = true;
//------------------------------------------------------
//-----------------------------------------------------
function command10(){
var url=content.document.location.href;
startProcess("C:\\Program Files\\\\firefox.exe",["-no-remote","-P","",url]);

function startProcess(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); 
};
}                   }  
//------------------------------------------------------
//-----------------------------------------------------
function command11(){
var url=content.document.location.href;
startProcess("C:\\Program Files\\\\firefox.exe",["-no-remote","-P","",url]);

function startProcess(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); 
};
}
//------------------------------------------------------
//-----------------------------------------------------
function command12(){
var url=content.document.location.href;
startProcess("C:\\Program Files\\Aurora\\firefox.exe",["-no-remote","-P","Test",url]);

function startProcess(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); 
};
}


})();
this.onclick = function(event) {
    if(event.button == 1) {
getBrowser (). addTab ("http://forum.mozilla-russia.org/viewtopic.php?pid=533522#p533522");
    };
   

};

Отсутствует

 

№416924-06-2012 11:04:51

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

Где-то когда-то видел кнопку , дублирующую пункт контекстного меню "Настроить..." , открывающий Окно настроек панелей инструментов ... или мне приснилось? :angel:

Отредактировано Крошка Ру (24-06-2012 11:05:20)

Отсутствует

 

№417024-06-2012 16:45:28

Victorrr72
Участник
 
Группа: Members
Зарегистрирован: 24-06-2012
Сообщений: 2
UA: Firefox 13.0

Re: Custom Buttons

Можно сделать кнопку, делающую резервирование закладок в указанную папку?

Отсутствует

 

№417124-06-2012 19:31:29

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

Re: Custom Buttons

vital32 пишет

Нет не работает,

Включение/выключение по имени:

Выделить код

Код:

const addonName = "Shockwave Flash";
var addonId;

Components.utils.import("resource://gre/modules/AddonManager.jsm");

this.init = function() {
    var addonListener = {
        button: this,
        onEnabled: function(addon) {
            if(addon.id == addonId)
                this.button.checked = true;
        },
        onDisabled: function(addon) {
            if(addon.id == addonId)
                this.button.checked = false;
        }
    };
    AddonManager.addAddonListener(addonListener);
    this.onDestroy = function() {
        AddonManager.removeAddonListener(addonListener);
    };
};

var button = this;
AddonManager.getAddonsByTypes(["plugin"], function(addons) {
    addons.some(function(addon) {
        if(addon.name.indexOf(addonName) != -1) {
            addonId = addon.id;
            button.checked = !addon.userDisabled;
            button.init();
            return true;
        }
        return false;
    });
});

this.onclick = function(e) {
    if(e.button == 0) {
        if(!addonId) {
            alert(addonName + " not installed!");
            return;
        }
        AddonManager.getAddonByID(addonId, function(addon) {
            addon.userDisabled = !addon.userDisabled;
        });
    }
};

Если тоже не работает, то выполнить в консоли ошибок

Выделить код

Код:

Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.getAllAddons(function(addons) {
    var params = ["name", "version", "id", "type", "appDisabled", "userDisabled", "isActive"];
    var addonsData = [];
    addons.forEach(function(addon) {
        addonsData.push(
            params.map(function(s) {
                return s + " = " + addon[s];
            }).join("\n")
        );
    });
    Components.classes["@mozilla.org/consoleservice;1"]
        .getService(Components.interfaces.nsIConsoleService)
        .logStringMessage("Addons:\n\n" + addonsData.join("\n\n"));
});

В консоль запишет список всех дополнений.
Или скопировать нужный id в первый вариант кнопки, или name (можно часть, но с учетом регистра) во второй.

Отредактировано Infocatcher (24-06-2012 19:33:15)


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

Отсутствует

 

№417224-06-2012 19:48:48

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 16.0

Re: Custom Buttons

используй консоль ошибок там обычно пишется где или что за ошибка

okkamas_knife :sick:

Ошибка: ReferenceError: command10 is not defined
Источник: chrome://custombuttons-context/content/button.js?windowId=Firefox&id=custombuttons-button47@init
Строка: 45

Добавлено 24-06-2012 19:53:08

Выделить код

Код:

BrowserCustomizeToolbar();

okkamas_knife Спасибо, а можно чтобы открывалось в нижней панели ? :angel:

Отредактировано Крошка Ру (24-06-2012 19:53:08)

Отсутствует

 

№417324-06-2012 20:13:49

Victorrr72
Участник
 
Группа: Members
Зарегистрирован: 24-06-2012
Сообщений: 2
UA: Firefox 13.0

Re: Custom Buttons

okkamas_knife пишет

Victorrr72
http://forum.mozilla-russia.org/viewtop … 76#p292076 и сообщения ниже

Спасибо за наводку. Кнопка работает нормально. Но в этом варианте выполняется экспорт закладок в html, соответственно и импортировать приходится из html, а при этом лис у меня начинает вести себя непредсказуемо (закладок у меня много, может причина в этом). Меня интересует именно резервное копирование в json. Возможно по аналогии с указаннной Вами кнопкой можно сделать то, что мне нужно. Но, увы, я это вряд ли смогу.

P.S. Проверил еще раз. Кнопка действительно работает нормально. Вот только лис не восстанавливает закладки из html файла. Версия 13.0.1. Может это только у меня, но это есть факт.

В идеале, эта кнопка мне видится так:
ЛКМ - резервное копирование закладок в указанную папку в формате JSON;
ПКМ - восстановление закладок из резервной копии, находящейся в указанной папке.

Отредактировано Victorrr72 (24-06-2012 20:33:36)

Отсутствует

 

№417424-06-2012 21:08:40

vital32
Участник
 
Группа: Members
Зарегистрирован: 23-06-2012
Сообщений: 169
UA: Firefox 12.0

Re: Custom Buttons

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

Добавлено 24-06-2012 21:15:16
кажись нашел, у меня в "управлении дополнениях" "плагины" два shockwaveflash и кнопка только один отключает а второй не троагет, как убрать втрой палгин shockwaveflash

Отредактировано vital32 (24-06-2012 21:15:16)

Отсутствует

 

№417525-06-2012 01:40:52

skynet281978
Участник
 
Группа: Members
Зарегистрирован: 09-03-2011
Сообщений: 508
UA: Firefox 13.0

Re: Custom Buttons

bunda1
Memory Monitor
как сделать чтобы в адресной строке отображение памяти было крупнее, а то мелкий почему то у меня шрифт
d3df3876e0da.jpg

Отредактировано skynet281978 (25-06-2012 01:45:55)

Отсутствует

 

Board footer

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