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

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

№860128-07-2015 22:39:06

leex
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 322
UA: unknown 0.0

Re: Custom Buttons

turbot
Стандартная кнопка "обновить " работает как надо.
Но в новом ФФ я не могу перенести ее в привычное для меня место. Не включена эта кнопка в опциях "изменить"
Кстати после кода от bunda1 Домашняя страница стала  открываться и в новой вкладке. Видимо точно что то не то было в моем профиле

Добавлено 28-07-2015 22:41:21

bunda1 пишет

Если я правильно понял что требуется:

Совершенно верно!
Спасибо вам огромоднейший :)

Отредактировано leex (28-07-2015 22:43:53)

Отсутствует

 

№860228-07-2015 22:41:52

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

Re: Custom Buttons

leex пишет

turbot
Стандартная кнопка "обновить " работает как надо.
Но в новом ФФ я не могу перенести ее в привычное для меня место.

Остановить - Перезагрузить

Отсутствует

 

№860328-07-2015 22:47:43

leex
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 322
UA: unknown 0.0

Re: Custom Buttons

Остановить - Перезагрузить

Классная кнопочка!
Только жаль что она не открывает обновленную страницу в новой вкладке по СКМ ;)

дополнено
дописал в вашу инициализацию кусочек :

if ( e.button == 1 ) gBrowser.duplicateTab(gBrowser.mCurrentTab);
};

Теперь обнова открывается в новой вкладке :)

Сердечно благодарен Вам!!!

Отредактировано leex (28-07-2015 23:16:03)

Отсутствует

 

№860428-07-2015 22:58:11

leex
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 322
UA: unknown 0.0

Re: Custom Buttons

вот так получилось

Выделить код

Код:

// Настройка функций кликов и длинных кликов мыши для кнопки ..............
this.onmousedown = function(e) {
    self.onclick = function() {
        self.onclick = "", clearTimeout( self.timer );          
        
        if ( !e.button )
             stopButt.disabled ? BrowserReload() : BrowserStop();
    };
     
    self.timer = setTimeout(function() {
        self.onclick = "";                 
        
        if ( !e.button ) for (var br of gBrowser.browsers) br.stop();    
    }, 500 );

   if ( e.button == 1 ) gBrowser.duplicateTab(gBrowser.mCurrentTab);
};

var img = self.ownerDocument.getAnonymousElementByAttribute( self, "class", "toolbarbutton-icon");        
var stopButt = document.getElementById('urlbar-stop-button'); 
var reloadButt = document.getElementById('urlbar-reload-button');


// Удалить стандартные кнопки перегрузки и остановки из адресной строки .............. 
stopButt.style.display = 'none'; reloadButt.style.display = 'none';
addDestructor(function() { stopButt.style.display = ''; reloadButt.style.display = ''; });


// Следим за изменением стандартной кнопкой перегрузки в адресной строке и аналогично меняем иконку кнопки ..............
function stopButtHandler() {
   img.src = stopButt.disabled 
   ? "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAABFklEQVQ4jdWToW7DQBBEI4WUBJbnC8rLAssjc9OAssqZzWx9Q/0J+QHTULOQfEBwsLFRUEkK6ki2ZTsuqjrSktPuu73ZvdnsXypJkkX3LIqiuTFkD4uxUwyGI6gvc91AXY0q4HqLomgOKgdVjd5uVGGu21DAda7hwyDzcGgUXODS1tONMWSgqhZwCASm60ZSHsd6anoCKp8ICkdz3YwqH0EegHT9AbWncX9WN4wq+02ub9p6uhk0cYqGOvq17mMHVb2bPfflJEmy6FvQdkeuVcPMUxcGaGkMGVyCazUOY9g3pnIFlRtDZh4OcF2MKsCwN/t8HQXd/1DvRlMVXGcwXY9CmvrY6QUM+7qL0lwnY8gALSdD/lTfBU/9GCESstoAAAAASUVORK5CYII="
   : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAoklEQVQ4jc2TMQ7DIAxFkXJGHyJ7pICMYp8ma1Y2lt4rHapUkBpjptSSJ74eH3/s3N9XQF56mjVusyrwyHuIfHqk3NZQ/mh4bzoJkc9vIydBk0qN6AwApruwhN3PPFIGgEl01YINQVTYKKSCRTp+QMjJDLnqSrBuOoYg2tPMrqTBSgGoMC0dM2yN29xLx/QhnasG/GpZ765IcevSG6ZlsZ+vN6qE/1DgPtqbAAAAAElFTkSuQmCC";
};
stopButtHandler();
var observer = new MutationObserver(function() stopButtHandler() );
observer.observe( stopButt, {attributes: true} );
addDestructor(function() observer.disconnect() );


this.tooltipText = "Л: Остановить - Перезагрузить \nЛд: Остановить все вкладки \nП: CB Меню";

Отсутствует

 

№860528-07-2015 22:59:31

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

Re: Custom Buttons

leex пишет

вот так получилось

Хорошо :)

Отсутствует

 

№860629-07-2015 00:15:05

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

Здравствуйте, нужна кнопка для открытия ссылки на которой стоит мышка - внешней программой.

Отсутствует

 

№860729-07-2015 00:28:16

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

Re: Custom Buttons

fokanik
Была раньше кнопка для открытия ссылок во внешних программах в "Готовые кнопки", но сплыла. У меня только урезанный вариант сохранился. Можете переделать под свои нужды.

Отсутствует

 

№860829-07-2015 01:35:18

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 42.0

Re: Custom Buttons

turbot пишет

Была раньше кнопка для открытия ссылок во внешних программах в "Готовые кнопки", но сплыла.

Похоже это okkamas_knife все свои кнопки зачистил и тему Готовые кнопки для Custom Buttons закрыл.

okkamas_knife пишет

Отсутствует

 

№860929-07-2015 01:37:18

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

Re: Custom Buttons

voqabuhe
Да, я видел. Потому и говорю: сплыла.

Отсутствует

 

№861029-07-2015 01:40:38

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

turbot пишет

У меня только урезанный вариант сохранился. Можете переделать под свои нужды.

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

Отсутствует

 

№861129-07-2015 02:30:28

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

Re: Custom Buttons

fokanik
Только инициализацию, в любую кнопку. Тогда в контекстном меню ссылок будет показываться. Вот вам более короткий вариант (не помню чей изначально, прошу прощения) из которого и делал (где что менять на свое - откомментировано):

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

Выделить код

Код:

(()=> {
   var menuitem = document.createElement("menuitem");       
   var contextMenu = document.getElementById("contentAreaContextMenu");

   menuitem.id = "open-in";
   menuitem.setAttribute("label", "Отправить в ..."); //видимое название, меняйте на свое
   menuitem.setAttribute("class", "menuitem-iconic");
// иконка для пукта контекстного меню в base64, меняйте на свою -->
   menuitem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAG9SURBVHjapJMxaFNRFIa/mwZ9QVotSDGVDGJRRBTSdhEEMTi1u4O4lHRXjB00hQ6SLenkIJhHpzq6+bbooHO24iBUBMsrVPIeFu+9pmmOw21jXlK00HO5cA733v/857/nKBHhJJZGOed9fTqBVFhsqmMhCEKjnpekGWnU8yL8f6lGPS+FYhPwB6CLBLXsUMI4sjyoROpvCQDWB+KBqzXmSuEQwJvl8QENAOJtAIL1lwPXq0MA58Y9gmpWAOaehsoBGEPw1j/IaI9Qyut59nMF71qJoHYJv5yVgxIO6fsUaq+JzS7N5SdgM+CZJJT9Cqz34pQD6M9quXhTuLD0CIjcWW/HbEdRUoPFzS3Y3HJR+TkA9yZzTBcmGV0p8fjKbV7M3+09MNY6Zv0i3pmfwlqLtZbUCLS05ldqj9zsGKsbH/m0lubDwiwYx7C/rDTAxEQGrYXfbUVLa3aM4YfWtNqGzsg+4e53iKYOOSR0VmeXMjI2epqudOl0u0hKOH/jDDs/Na0Nzf3cAg/b747s4jACJbgR8Mvub191DN8u77P3JU31lPfPMShWQjXU2zMrt+Tqs+vHmgNBUCcd5z8DAA2s8FiWdi03AAAAAElFTkSuQmCC");
   document.getElementById("context-sep-open").parentNode.insertBefore( menuitem, document.getElementById("context-sep-open") );
   
   addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu.onLink, false, contextMenu );
   addDestructor( ()=> contextMenu.removeChild(menuitem) );
     
   addEventListener("command", function(e) {
      if ( e.button ) return;
      
      var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      file.initWithPath("C:\\Example\\bla-bla-bla.exe"); //путь замените на свой
      process.init(file);
      process.run(false, [gContextMenu.getLinkURL()], 1);
             
   }, false, menuitem );
})();

Отсутствует

 

№861229-07-2015 06:21:48

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Palemoon 25.0

Re: Custom Buttons

Вот кнопка добавляющая к ссылкам подменю с прогами. LinkMenu. Тут мои проги, переделай на свои пути. это та кнопка сделанная некогда бритва_оккама , добавил иконку и иконки к прогам.

Выглядит так
08c8249cbe9b6f846726f07f0fa6e0a4.jpeg

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

Выделить код

Код:

var icomnu = "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OK04ODj/ODg4/zg4OK0AAAAAODg4rTg4OP84ODj/ODg4rQAAAAA4ODitODg4/zg4OP84ODitAAAAAAAAAAA8PDz/PDw8/zw8PP88PDz/AAAAADw8PP88PDz/PDw8/zw8PP8AAAAAPDw8/zw8PP88PDz/PDw8/wAAAAAAAAAAQEBA/0BAQP9AQED/QEBA/wAAAABAQED/QUFB/0FBQf9BQUH/AAAAAEFBQf9BQUH/QUFB/0FBQf8AAAAAAAAAAEVFRa1FRUX/RUVF/0VFRa0AAAAARUVFrUVFRf9FRUX/RUVFrQAAAABFRUWtRUVF/0VFRf9FRUWtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk5OrU1NTf9NTU3/Tk5OrQAAAABOTk6tTU1N/01NTf9OTk6tAAAAAE5OTq1NTU3/TU1N/05OTq0AAAAAAAAAAFJSUv9SUlL/UlJS/1JSUv8AAAAAUlJS/1JSUv9SUlL/UlJS/wAAAABSUlL/UlJS/1JSUv9SUlL/AAAAAAAAAABWVlb/VlZW/1ZWVv9WVlb/AAAAAFZWVv9WVlb/VlZW/1ZWVv8AAAAAVlZW/1ZWVv9WVlb/VlZW/wAAAAAAAAAAWlparVpaWv9aWlr/WlparQAAAABaWlqtWlpa/1paWv9aWlqtAAAAAFpaWq1aWlr/Wlpa/1paWq0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiYmKtYmJi/2JiYv9iYmKtAAAAAGJiYq1iYmL/YmJi/2JiYq0AAAAAYmJirWJiYv9iYmL/YmJirQAAAAAAAAAAZ2dn/2dnZ/9nZ2f/Z2dn/wAAAABnZ2f/Z2dn/2dnZ/9nZ2f/AAAAAGdnZ/9nZ2f/Z2dn/2dnZ/8AAAAAAAAAAGtra/9ra2v/a2tr/2tra/8AAAAAa2tr/2tra/9ra2v/a2tr/wAAAABra2v/a2tr/2tra/9ra2v/AAAAAAAAAABwcHCtcHBw/3BwcP9wcHCtAAAAAHBwcK1wcHD/cHBw/3BwcK0AAAAAcHBwrXBwcP9wcHD/cHBwrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAIQhAACEIQAAhCEAAIQhAAD//wAAhCEAAIQhAACEIQAAhCEAAP//AACEIQAAhCEAAIQhAACEIQAA//8AAA=="; 
   var smplayicon = "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRUVFyAAAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHh4er+ff2+39/f7JGREQ3wL6+27e2tvCjoKBeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+fn6a5uLf8/Po4v7l4d3+tra2/sbHx//V09P/sq+u/mNeXicAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeXl53y8TA8ObQxP/Zy8H/hYB+/7a3t//arq7/797d/8zHx/60rq5+AAAAAAAAAAAAAAAAAAAAAAAAAABMTExRpJyY8sexov7ry7T/joyL/9XJyP/Qx8f/78vL//Li4v/l3t7/qqSknQAAAAAAAAAAAAAAAAAAAAAHBwc0Rzkz7MefiP7PrJT/2cOr/6Kio//15eT/2s3N//fn5//48/P/6eLi/6mjo6IAAAAAAAAAAAAAAAAAAAAkMCMd6Yc6Df7Wn3r/6L+U/868nv+blpT/vrKx/8bCwv/otrb/7tjY/93X1v+4sbCSAAAAAAAAAAAAAAAlFwsGnVopDf6zUxH/4at1/92/jf+no5z/S5Ll/2+Suf+8vLv/yrS0//Xs7f/EwcD/xL6+fgAAAAAAAAAoDgYCiXw3Ef6EPg//klYe/9uydP97dGj/W327/y6B/v9dpfn/2NXS/9XV1f+6ubn/trKy+MjIx6EAAAAqCwQBg3Y0EfWuURX/znUm/6B0Mf9RRjn/cnBu/3SOyv8kae7/nazE/8vLy/+Qj4//k5KS/0FBQfLFxcWNAAAAWlAkC+irUBX/y3Ej/96gRf9aTTX/Tk5O/7CwsP/d3d3/vL3A/6enpv/u7u7/enp6/zMzM/9JSUn3xsbGkgAAAAAEAQB8jU0Y/uWjRv5lVTn/WFhY/56env8wMDD/Pj4+/8fHx/+np6f/dXV1/7+/v/+3t7f/2NjY/qKiomIAAAAAAAAAAAAAAGQ8LhfQQEBA/piYmP9qamr/NTU1/zU1Nf+IiIj/Li4u/zU1Nf9MTEz/8vLy/9PT08oAAAAAAAAAAAAAAAAAAAAAAQEBRY6OjoJ1dXXleHh4/kZGRv9ZWVn/vb29/0RERP81NTX/aGho/uHh4dfHx8ckAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoKChHFxcdSXl5f+rKys/8fHx//AwMD+iIiI/p6enqV9fX0ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDQ0MsgICAh4yMjKSEhISlfX19jURERDwAAAAAAAAAAAAAAAAAAAAA/7MAAP8BAAD+AAAA/AAAAPgAAADwAAAA4AAAAMAAAACAAAAAAAAAAAAAAACAAAAAwAEAAOABAAD4AwAA/A8AAA==";
   var aimpicon = "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRkZQBgYGJsYGBjPGRgW5RkYFuUYGBjPFxcXmxUVFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGRkRGBkZmhkZF/4gFhH/IRUW/yAcJP8gHCT/IRUW/yofGv8pKSf+GhsbmhkZGREAAAAAAAAAAAAAAAAcHBwRGRkavR4aFv8jGx3/FUdo/weBsv8DnNL/A5zT/weBsv8fUXH/PjY4/zczL/8bGxy9GxsbEQAAAAAAAAAAGxsbmyAcGP8gIiz/Bnm0/wDA//8Axv//AMH//wDB//8Axv//AMD//wZ/uf80N0H/JSAd/xoaGpsAAAAAHh4ePh8eHP0kHSD/Cm2o/wHA//8AuP//ALT//wCx//8Ar///ALD//wOv+v8NruT/DGqh/yQfIv8fHRz9HR4ePh4eHpsnHhf/D0Jt/xSZ2v9DYW//Knme/xSRzf8Eo/X/AK7//wCz//8rbYz/RjUu/w6S0P8PRnH/Jx0X/x4eHpsiISDQJx0c/wRosv8Arf//M195/043Kv9FQD3/PERH/ylYcP8Wdaf/I2yX/yJtnP8AqP//BGq0/yccG/8gIB/QIyIf5SMgJv8AdtH/AJ7//wmJ4P82ODn/NTk8/yphi/8qXoj/LFt//yFnlv8PfcT/Apj4/wB60v8pJy3/Kyoo5S8uK+UqJy7/AGvP/wCP//8Akf//ImSY/1BANv8bjtj/IZzo/3SAi/80lc3/AaT9/wCn/v8AfM//Mi83/zc2NOVEREPQUkdH/wBfq/8Aqv//AKL//w2p+v9zgYf/ZXd//2F0ff9qcHL/C6Tx/wCp//8As///AGmu/0E1Nf82NTXQMzMznGphW/8PP2b/AL7//wCv//8Asv//MJ7Q/2xdVv9mVU7/KpXE/wCz//8Ar///ALP//xE/af9TSkT/LS4umyQkJD5kY2H+XFNX/wByqf8A0///ALj//wW5//9XdoT/Tmt2/wS5/v8At///AMb//wBqrf9EO0D/T09N/SYmJj4AAAAANDQ1nJOQjP9NTFf/AHSl/wDM//8A0f//JLrp/yS45v8Azf//AMD//wBuqv83OEL/ZmJf/zAwMZsAAAAAAAAAACQkJBFDQ0S9mZWS/25kaP8cTm7/AHmn/wCWzP8Ak87/AHSo/xVGav9RSU3/cGxo/zk6Or0oKCgRAAAAAAAAAAAAAAAAJCQkETk5OZuBgH/+m5GM/4R1eP9dWWL/Uk9X/2VYWv93bmn/ZmVj/jU2NpooKCgRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkQEFBQZtjY2LPaGZk5WRiYOVVVVTPPDw9mykpKUAAAAAAAAAAAAAAAAAAAAAA8A8AAMADAACAAQAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAIABAADAAwAA8A8AAA==";
   var wgetico = "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFBQUFxMTE2kWFhZwFhYWcBYWFnAWFhZwFhYWcBYWFnAWFhZwFhYWcBYWFnAWFhZwFhYWcBMTE3ETExNQFBQUADc3N843Nzf/LCws3S0tLeEtLS3hLS0t4S0tLeEtLS3hLS0t4S0tLeEtLS3hLS0t4SwsLN84ODjsOTk5/zY2Nq00NDT/FBQURgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMACYmJqw0NDT/NTU1/wgICC4AAAAAAAAAAAAAAAABAQEFAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAgICCQAAAAAdHR2VNzc3/zU1Nf8JCQkxBgYGBgwMDEIGBgYSAAAAAAAAAAAICAgoCwsLOAoKCjQLCws5BAQEEwAAAAAAAAAAHx8fmzY2Nv81NTX/CAgILwsLCwk3NzfWNDQ05wsLCx0AAAAAKSkpxTU1Nf8xMTH4Nzc3/xQUFF0AAAAAAAAAAB4eHpo2Njb/NTU1/woKCjQAAAAACQkJAjExMcs1NTXnDg4OGQAAAAICAgIKAQEBCAEBAQkAAAADAAAABAAAAAAeHh6aNjY2/zU1Nf8KCgo0AAAAABMTEyc0NDTjLi4uwAgICA0AAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQUAAAAAHh4emjY2Nv82Njb/CAgIMBAQEBU2NjbhLS0twwUFBQUAAAAAAQEBBQAAAAMAAAADAAAABAAAAAMBAQEHAAAAAB8fH5s2Njb/NTU1/wcHBycAAAAAAQEBCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR2VNzc3/zQ0NP8SEhJbBwcHJwkJCS8KCgozCgoKNAoKCjIKCgoyCgoKMgoKCjIKCgoyCgoKMgoKCjYGBgYiIiIirjY2Nv8yMjL+NDQ0/zU1Nf80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zMzM/8yMjL/NTU1+TQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP81NTX/NTU18CgoKFkoKCjOKCgoyygoKMsoKCjMKCgozCgoKMwoKCjMKCgozCgoKMwoKCjMKCgozCgoKMooKCjQKCgorygoKC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//4AAAABAAAAAAAAP/wAADn0AAAGDAAAAgwAACAEAAAh9AAAAgQAAC/8AAAAAAAAAAAAAAAAAAAAAAAA//8AAA=="; 
   var ummyico = "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AJZJNACVtTYBltY0AJXlNQGW8jQBlvgyAJH7MwCS/DQAlvc0AJXxNQGW5jUAltU2AZe1NgOWSwAAAAAyBJtCMgOb+zIDnPwyApv8MgOc/DICm/wvAJX8JwB5/ScAef0vAJX8MgKb/DICm/syApv8MgKb+zICm/s1BJpEMAShqy8EofwvBKH8LwSh/C8EofwuAp78JgKE/WZakv5mWpL+JgKE/S4CnvwvBKH8LwSh/C8EofwvBKH8MASjqysGp9ksBqf8LAan/CwGp/0rBKX8JwSU/UMue/7Fz9n+xc/Z/kMue/4mBJT9KwOl/CsGpv0sBaf8LAWn/CsGp9koB63wKAet/CgHrfwoB6z9JwWm/CoPfv66vtH/ztng/83Z3/+6vtH/Kg9//ScFpf0oB638KAes/SgHrP0pB6zxJwmz+iYJsv0mCbL9Jgmy/SUIsf3S0Ov+9vj5/9bf5P/W4OX/9vj5/9LQ6/4kB7H9JQiy/SUIsv0lCLL9Jwmz+iMKufojC7j+Iwu4/iIKuP0jC7j+Igq4/SAIqv3c5Oj/3OTo/yEIqv0jCrj9Iwu4/iMKuP0jC7j+Iwu4/iMKufohDb7yHwu9/R8Lvf0gDL79Hwu9/SAMvv0eCrD94Ofr/9/m6/8eCrD+IAy+/h8Lvf0gDL7+Hwu9/R8Lvf0hDb7yHQ7E2x0NxP4dDcT+HQ7E/h0NxP4dDsT+Gwy2/ufs7//n7O//Gwu2/h0NxP4dDcT+HQ3E/h0NxP4dDcT+HQ7E2xsQyq0aD8n/Gg/J/xoPyv4aD8n/Gg/K/hkNyP78/f3//P39/xkNyP4aD8r+Gg7J/hoPyv4aDsn+Gg7J/hsQyq0aE9JEFxDQ/hcQ0P4XEM//FxDQ/hcQz/8XEM//GBHP/xcQz/8YEc//GBHP/xgRz/8YEc//GBHP/xgR0P0XE9FCAAAAABgU1ksWEtW3FBPW2BYT1egVE9X0FBLV+hQS1v4UEtb+FBLV+hUT1fQVE9XoFBPW2BUS1bcVFdZKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEGAAaxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQYABrEH//6xB//+sQQ==";
   var nitroico = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vAAU/7wAhv+8ANP/vAD6/7wA9P+7AM79vQSD+b8MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vABU/74F8v/YV///7pv///i2///5sf//7pL/+9lU//TBGPLtwh1TAAAAAAAAAAAAAAAAAAAAAAAAAAD/uwBT/8MU/v/wov///dX///7s////+f////j///7o///8x//88JT/6sw3/t/JNVMAAAAAAAAAAAAAAAD/vAAW/70F8f/wov///uD////8/////v///////////////v////v///3X//Twlv/ZzUXx0M9PGAAAAAAAAAAA/7wAgv/YVv///dT////8//aaAP/2mgD////////////+9OP/+btU//7+9v/5+cT/3uJ+/8fSXocAAAAAAAAAAP+8AND/7Zf///7s/////v/2mgD/9poA///9+//70or/9p8M//aaAP/9/vD/+f3h/+Dwqf++1W3kt9h6AwAAAAD/vAD4//q4////+P//////9poA//aaAP/4qyr/9poA//aaAP/2mgD//P7v//j+7v/Z98H/t9p//67biEgAAAAA/7wA+P/6s/////j///////aaAP/2mgD/9poA//iyO//2mgD/9poA//n+8P/z/u7/1/za/7Himf+m3pWnAAAAAP68AdD+7o////7o/////v/2mgD/96ES//zYmf/9/vD/9poA//aaAP/0/u//7v7v/9396v+p7bn/n+Gh95nkrBH6vQiC+dlV///8xf////v/+b5c//325P/9/vH//P7w//aaAP/2mgD/7v7u/9n95v/U/e3/qvng9ZnjrNqT5bZo9cARFfDDHPH78JX//v3X//7+9//9/vH//P7x//n+8P/0/u//7v7u/+j+8f/i/vP/o/vk/5T76f+D9+U7jee+agAAAADpxCVT5s09/vHwlP/6+sn/+v3l//n+7//0/u//6f3q/9T85P/i/vL/4/73/7798v+B++7/dfvzhgAAAAAAAAAAAAAAANrLPVPT0E3w2+SF/97xqv/b+cf/2vzc/9796f+z+97/ovvj/7z98v/b/vr/hPv0/2z7+NoAAAAAAAAAAAAAAAAAAAAAy9FZFMLUZo261nTls9qD/67joP+o777/nPnd+o776P+B++//gfv0/4z8+v9m+/v/afv9MgAAAAAAAAAAAAAAAAAAAAAAAAAAsdqCA6rcjkqj35qqnOKl+JbksPuG89pddfv0jWz7+OBm+/z/aPv9/4D7/YYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJfksBKR5rpsjejBjYnpyAFm+/sBa/v9NoH7/YmT+/254B8AAMAPAACABwAAAAMAAAADAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAACAAQAAwAEAAOAAAAD4AAAA/wAAAA==";
   var ummyDlico = "data:image/x-icon;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAJ6ACoPfgBDLnsAJwOEACsQgAAnBZQAKAWUADUDkwA1BJIAMQOWADAEnwA0BJwAOQeYADoImQA/DZoAHgqwABsLtgAbDLYAKAamACwGpgAuB6gAIQmqAC4IqAApCKwAMQaiACYJsQArDbQAIwu4ACQLuAAnDroAIAy9ADQUsABIGp8ASBmgAFYppgBKK7QAZlqSAG5KswBwSrUAdFa/AB0NxAAZDskAFxDPABgRzwAXENAAFBLWABkS0AAYFtUAHx3WACwZwQA8MMwAKijYADc33AB0VsEAZFzbAFdU4AC6vtEAxc/ZAM3Z3wDO2eAA1t/kANLQ6wDW4OUA3eTpAODn6wDn7O8A9vj5APz9/QAAsDYAAM9AAADwSgAR/1sAMf9xAFH/hwBx/50Akf+yALH/yQDR/98A////AAAAAAACLwAABFAAAAZwAAAIkAAACrAAAAvPAAAO8AAAIP8SAD3/MQBb/1EAef9xAJj/kQC1/7EA1P/RAP///wAAAAAAFC8AACJQAAAwcAAAPZAAAEywAABZzwAAZ/AAAHj/EQCK/zEAnP9RAK7/cQDA/5EA0v+xAOT/0QD///8AAAAAACYvAABAUAAAWnAAAHSQAACOsAAAqc8AAMLwAADR/xEA2P8xAN7/UQDj/3EA6f+RAO//sQD2/9EA////AAAAAAAvJgAAUEEAAHBbAACQdAAAsI4AAM+pAADwwwAA/9IRAP/YMQD/3VEA/+RxAP/qkQD/8LEA//bRAP///wAAAAAALxQAAFAiAABwMAAAkD4AALBNAADPWwAA8GkAAP95EQD/ijEA/51RAP+vcQD/wZEA/9KxAP/l0QD///8AAAAAAC8DAABQBAAAcAYAAJAJAACwCgAAzwwAAPAOAAD/IBIA/z4xAP9cUQD/enEA/5eRAP+2sQD/1NEA////AAAAAAAvAA4AUAAXAHAAIQCQACsAsAA2AM8AQADwAEkA/xFaAP8xcAD/UYYA/3GcAP+RsgD/scgA/9HfAP///wAAAAAALwAgAFAANgBwAEwAkABiALAAeADPAI4A8ACkAP8RswD/Mb4A/1HHAP9x0QD/kdwA/7HlAP/R8AD///8AAAAAACwALwBLAFAAaQBwAIcAkAClALAAxADPAOEA8ADwEf8A8jH/APRR/wD2cf8A95H/APmx/wD70f8A////AAAAAAAbAC8ALQBQAD8AcABSAJAAYwCwAHYAzwCIAPAAmRH/AKYx/wC0Uf8AwnH/AM+R/wDcsf8A69H/AP///wAAAAAACAAvAA4AUAAVAHAAGwCQACEAsAAmAM8ALADwAD4R/wBYMf8AcVH/AIxx/wCmkf8Av7H/ANrR/wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYjIQ8NCQgODyIjJwAAAAwMDAwMCgEBCgwMDAwMACgZGRkZCwQlJQQLGRkZGTYkFxcXFQcDOjoDBhQVFRUkIBgYGBMCOTw7OQUTGBgYIBsaGhsaPkM/P0M+GhoaGhseHR0cHh0WQEAWHR0dHBweMh8fHx8fEEFBEB8fHx8fMjMpKSkpKRJCQhEpKSkpKTM3KioqKioqREQqKioqKio3AC0tKy0rKywrLCwsLCwvAAAAODU0MTAuLjAxNDU4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAAwAMAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAADAAwAA//8AAP//AAA=";
   var domHVico = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHt7e0B7e3uAe3t7gHt7e4B7e3uAe3t7gHt7e4B7e3uAe3t7gHt7e4B7e3uAe3t7gHt7e4B7e3uAg39/gKVKGECUUC//jkgn/45IJ/+QSin/kEop/5BKKf+QSin/kEop/5BKKf+QSin/kEop/45IJ/+OSCf/kEwr/2xoZv+1a0KA/f39//v7+//7+/v//f39//n5+f/azcP/zbGc/8Gsnv/U0tL//f39//v7+//9/f3/+/v7/+LJvf9qZmL/tWc1gP39/f/7+/v//f39//f08v/JkFr/tVQk/6ZWL/+9VDP/rFY3/6SQiv/5+fn/+/v7//39/f/ix7n/amZi/7VrMYD9/f3//f39//v7+//Ypnf/oj0C/6xIAP8zYAT/oj8A/6Q/Cv+cVjf/v7m1//39/f/9/f3/5Me3/2pmYv/Bby2A/f39//v7+//9/f3/v2Yc/8NeAP+obwD/EH8A/6RoAP+JVgD/VGAl/5h9av/9/f3/+/v7/+jLtf9qZmL/xnMpgP39/f/9/f3//f39/8dnCP+Ohgb/YpwO/9aWCv/ogwD/JXsA/yBkBP+DdUn//f39//v7+//oy7X/amZi/8ZzKYD9/f3//f39//v7+//YjCX/JbU3/zPHXP+30Gb//asm/3OIAP8EcwD/mJZq//v7+//9/f3/6Muz/2pmYv/WeyGA/f39//v7+//9/f3/t9yg/znJYP+v6qD/w/Gz/56/TP/JiQL/Sn0I/+Te0//9/f3/+/v7/+7Ssf9qZmL/1nshgPv7+//9/f3/+/v7//39/f+94qT/q9yJ/4veh/8kv0f/3pAc/+rUsf/7+/v//f39//39/f/s0K//bmhk/9p/IIDs6uD/7Ojc/+zo3P/q5tr/7Ojc/+rkx//a1qL/1tKi/+ji0f/o5Nj/6uba/+jk2P/u6Nb/5MGW/2poZv+5XgCAuVgA/7VWAP+1VgD/t1gA/7dYAP+1VgD/t1YA/7VWAP+1VgD/vWIO/79pGP/MdyX/e1ZQ/6hcIf9zcHD/znMIQN6KK//mkCr/5o0m/+SLIv/kiSD/5owg/+SJIP/kiSD/5Ikg/+SJGv/kiR7/5osc/9qKKv/eiSn/paWcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAA==";
   var aria2ico = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABJUlEQVQ4y7WSPW7CQBBGn1GKpEiZ5A6QK6TlBFCmYalwhTZI7pb0sdzRuXLJBZCLNOlyECPRJoU/CckpWEfGgSIgRhppd37eftoZONOCY4k8z6vmvd/vB1zCjlKXy+WeguFweEEFaZreAZs6aIwJ0jTdU3Ag9mCM2VwBSOoB35PJ5LbOSvrzmjEmAFgsFl/AI/BeA7pAAZAkyRtg24AkSSognk6nL5KKNqAHrP15BtwDzy0BGTDzNWsPoFMDPJUoiipJI0krSXhfSRpFUVT5+kLSHqBbAwCcc1tJA9+YSxo457aN/ym86t0UrLVVS+5rHMfzZsBaOwdcq+6mA1CWZdtdGIa/gDAM52VZugN1OwXj8bg6cY+u6yl8AE//bP7Mskxnr/IPLt++0wEEu3MAAAAASUVORK5CYII=";

(function openLinkAsMenu(){

    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 = "openLinkAsMenu";
    menu.setAttribute("label", "Открыть в ...");
    menu.setAttribute("class", "menu-iconic");
    menu.setAttribute("image", icomnu);
    menu.hidden = true;
    
    contextMenu.insertBefore(menu, document.getElementById("context-sep-open"));
    var menuPopup = document.createElementNS(kXULNS, "menupopup");
    menu.appendChild(menuPopup);
       
      var lst = [

        {          label:"SMplayer",             command:smplayOpen, image:smplayicon        },
        {          label:"AIMP2 play",          command:aimp2play, image:aimpicon        },
        {          label:"Открыть в MxNitro (Blink)",          command:mxNitroUrl, image:nitroico        },
        {          label:"UmmyDownloader (ютуб)",          command:ummyDownloader, image:ummyDlico        },
        {          label:"Wget -x [Url download]",             command:wgeturl, image:wgetico         },
        {          label:"Wget -x -i [list download]",          command:wgetlist, image:wgetico        },
        {          label:"Aria2 download",          command:aria2c, image:aria2ico        },
        {          label:"DomainHosting View",          command:domainHostView, image:domHVico         }
         
        ];
    
     for(var i = 0, m; m = lst[i]; i++){
        var menuItem = document.createElementNS(kXULNS, "menuitem");
        menuItem.setAttribute("label", m.label);
        menuItem.setAttribute("class", "menuitem-iconic");     // +1
        menuItem.setAttribute("image", m.image);          // +2
        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) {
                 document.getElementById("openLinkAsMenu").hidden = false;
         }
      
       function setMenuDisplay(aEvent) {
                 if (gContextMenu.onLink) {
                 document.getElementById("openLinkAsMenu").hidden = false;
        }
                 else
                 document.getElementById("openLinkAsMenu").hidden = true;
    }


//------------------------    
    
function smplayOpen(){
 
        var urllink=gContextMenu.linkURL
        var pleerpath="C:\\0l0\\MyPROG\\FM\\TC\\SOFT\\MEDIA\\SMplayer\\smplayer.exe"

        startProcess(pleerpath,[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);
      } else custombuttons. alertBox ("URL не найден", path); 
};
        
     }
     
 //-----------------------------------------------------------------------------
    function aimp2play(){
        var urllink=gContextMenu.linkURL
        var pleerpath="C:\\0l0\\TC\\SOFT\\MEDIA\\AIMP\\AIMP2.exe" 

        startProcess(pleerpath,[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);
      } else custombuttons. alertBox ("URL не найден", path); 
};
        }
// ---------------------------------------------------------------------------------

    function wgeturl(){
        var urllink=gContextMenu.linkURL
        var wget= "c:\\Program Files\\UnixUtils\\bin\\wget.exe"
        var param="-с -nc"
//        alert(pleerpath);
        
        startProcess(wget,param,[urllink]);

        function startProcess(path, param, 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 ("URL не найден", path); 
};
        }



//--------------------------------------------------------------------------------
        
    function wgetlist(){
        var urllink=gContextMenu.linkURL
        var pleerpath="c:\\Program Files\\UnixUtils\\bin\\wget.exe"
        var param="-xc -B -i"
        
        startProcess(pleerpath,param,[urllink]);

        function startProcess(path, param, 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 ("URL не найден", path); 
};
        }


// ---------------------------------------------------------------------------------

function mxNitroUrl() {

    var url = gContextMenu.linkURL;
        
    var file= Components.classes["@mozilla.org/file/directory_service;1"].
      getService(Components.interfaces.nsIProperties).
      get("ProfD", Components.interfaces.nsIFile);
      file.append("Soft");
      file.append("MxNitro");
      file.append("MxNitro.exe");

  startProcess(file.path,[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 ("Программа не найдена. Ошибка в пути ☭", file.path); 

     };

}

// ---------------------------------------------------------------------------------

function ummyDownloader() {

    var url = gContextMenu.linkURL;
        
    var file= Components.classes["@mozilla.org/file/directory_service;1"].
      getService(Components.interfaces.nsIProperties).
      get("ProfD", Components.interfaces.nsIFile);
      file.append("Soft");
      file.append("UmmyVideoDownloader");
      file.append("UmmyVideoDownloader.exe");
      
  startProcess(file.path,[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 ("Программа не найдена. Ошибка в пути ☭", file.path); 

      };

}

// --------------------------------------------------------------------------------------------------------

function aria2c() {

    var url = gContextMenu.linkURL;
        
    var file= Components.classes["@mozilla.org/file/directory_service;1"].
      getService(Components.interfaces.nsIProperties).
      get("ProfD", Components.interfaces.nsIFile);
      file.append("Soft");
      file.append("Tools");
      file.append("aria2.exe");
      
  startProcess(file.path,[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 ("Программа не найдена. Ошибка в пути ☭", file.path); 

      };

}



// --------------------------------------------------------------------------------------------------------
function domainHostView() {

 var url =  gContextMenu.linkURL;
 var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
   file.initWithPath(file.path + "\\Soft\\Tools\\DomainHostingView.exe");

   var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   process.init(file);
   process.run(false, ["/StartDomain", url], 2);

}

// ---------------------------------------------------------------------------------------------

// ================ end ================================
        
})();

Отсутствует

 

№861329-07-2015 09:12:48

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

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

Отсутствует

 

№861429-07-2015 09:30:29

amid525
Участник
 
Группа: Members
Откуда: Беларусь
Зарегистрирован: 19-08-2014
Сообщений: 361
UA: Firefox 29.0

Re: Custom Buttons

Подскажите, можно создать кнопку, что бы в конт меню, на ссылке отображало "открыть в гугл кеш":rolleyes:

Отсутствует

 

№861529-07-2015 10:21:59

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1224
UA: Firefox 39.0

Re: Custom Buttons

amid525
Может, подойдёт кнопка Ext Menu отсюда...

Отсутствует

 

№861629-07-2015 10:31:04

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Palemoon 25.0

Re: Custom Buttons

amid525
В инициализацию положить. Пункт в меню ссылок открыть в гуглкэш
Init

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

Выделить код

Код:

// пункт "Открыть в гугглкэш" в контекстном меню сцылок

(function() {
   if ( document.getElementById("openincache") ) return; 
               
   var menuItem = document.createElement("menuitem");
   menuItem.id = "openincache";
   menuItem.setAttribute("label", "Открыть в гугглкэш");
   menuItem.setAttribute("class", "menuitem-iconic");
   menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABWUlEQVQ4jaXTPUvDQBgH8HyzkiCVdlBcFD+CDgUn0bU5rUMRS6mD4BuCVgfFKmitCl0s+FKhvoEgVvsyWKuRS9JLcvm7tcplSHW44e6e5/c8x91JAaKFZJXWFELRzZBVWgsQLST9JfknInlt9ExRJLMMqSOG67ID7gLb5xbG100h1hNIFyzM51gbu61wnN7Znl14Al+GC7LTas9nMi20bPgHPnUXmatOxbE1E89v3D8wd8DAbGBiw0R/XMfupY3RJcM/oBCKkUUDiUMGF/h1HN+AQiiC0xSa4aL04mBgVvcPTKZNbBYspHIMy3mGJnXx+s4xmBARAVg4Ybh4ctAb66wNJXSUGxx7RfEqBaDa5EgdMSEwmWXIlnwA+Qcb5QbHcLLTbjBGcfboILLq4yX2xXVsFSzUP1zcVzmOb2zsF21EVsRkhVD89zPVJTmqhWWV1rsGVFqRo1r4G6iM33AbQTj+AAAAAElFTkSuQmCC");
   menuItem.setAttribute("oncommand", "getBrowser (). selectedTab = getBrowser (). addTab('http://www.google.com/search?q=cache:' + encodeURIComponent( gContextMenu.linkURL || gContextMenu.imageURL ))");
   document.getElementById("context-viewimage").parentNode.insertBefore( menuItem, document.getElementById("context-viewimage") );
   
   document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function() {
     menuItem.hidden = !gContextMenu.onLink; 
     }, false);
})();

Отсутствует

 

№861729-07-2015 10:45:21

amid525
Участник
 
Группа: Members
Откуда: Беларусь
Зарегистрирован: 19-08-2014
Сообщений: 361
UA: Firefox 29.0

Re: Custom Buttons

Спасибо!

Отсутствует

 

№861829-07-2015 12:08:02

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 42.0

Re: Custom Buttons

turbot пишет

Да, я видел. Потому и говорю: сплыла.

Ну как известно, что в сеть попало, то бесследно сплыть не может :) Если кому нужна Link  Master (Context menu), ну или другие кнопки от okkamas_knife, то можете прошерстить архивчикГотовые кнопки для Custom Buttons | Форум Mozilla Россия. А то когда он там ещё разродится на своей страничке их выложить. :sick:
ПС О как, на две тысячи уже нафлудил :D

Отредактировано voqabuhe (29-07-2015 12:11:25)

Отсутствует

 

№861929-07-2015 13:52:08

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

Выделить код

Код:

file.initWithPath("C:\\Program Files\\SMPlayer\\smplayer.exe"); 
      process.init(file);
      process.run(false, [gContextMenu.getLinkURL()], 1);

Подскажите, а как тут параметры прикрутить: smplayer.exe -add-to-playlist "%1"
Нужно чтоб в плейлист линки добавлялись.

Отсутствует

 

№862029-07-2015 14:47:17

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 4001
UA: Palemoon 24.0

Re: Custom Buttons

bunda1, благодарю !

Подскажите пожалуйста : какой код требуется вставить в кнопку для обновления "URL автоматической настройки сервиса прокси" аналогично нажатию кнопки "обновить" в "параметрах соединения", как это сделано, допустим, в дополнении Reload PAC button ( https://addons.mozilla.org/ru/firefox/a … pac-button ) ?

Отсутствует

 

№862129-07-2015 14:56:26

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Palemoon 25.0

Re: Custom Buttons

fokanik
попробуй так :/

Выделить код

Код:

file.initWithPath("C:\\Program Files\\SMPlayer\\smplayer.exe"); 
      process.init(file);
      process.run(false, ["-add-to-playlist", gContextMenu.getLinkURL()], 2);

Отсутствует

 

№862229-07-2015 15:17:25

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

Re: Custom Buttons

Панель меню не открывается жестом, хотя тем же жестом нормально закрывается, что не так?

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

Выделить код

Код:

'DLD':{name:'Панель меню',cmd:function(){var toolbar = document.getElementById("toolbar-menubar");
var visibility = toolbar.collapsed;
setToolbarVisibility(toolbar, visibility);}},


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

Отсутствует

 

№862329-07-2015 15:29:22

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

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

jars пишет

fokanikпопробуй так Выделить кодКод:      file.initWithPath("C:\\Program Files\\SMPlayer\\smplayer.exe");
      process.init(file);
      process.run(false, ["-add-to-playlist", gContextMenu.getLinkURL()], 2);


О-0-о---> :rock: Заработало, спасибо!

А для "vlc.exe" %1 ---> такое написание не работает, как быть?

Выделить код

Код:

process.run(false, ["%1", gContextMenu.getLinkURL()], 2);

А как этот язык программирования называется хоть правильно, где обучалку по нему можно почитать?

А еще как будет выглядеть команда для открытия адреса активной вкладки во внешней программе - в подмену этому:

Выделить код

Код:

process.run(false, [gContextMenu.getLinkURL()], 1);

Отредактировано fokanik (29-07-2015 16:12:24)

Отсутствует

 

№862429-07-2015 15:47:37

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 42.0

Re: Custom Buttons

villa7 пишет

Панель меню не открывается жестом, хотя тем же жестом нормально закрывается, что не так?

№8004

Отсутствует

 

№862529-07-2015 16:24:43

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

Re: Custom Buttons

voqabuhe
Ага, спасибо.


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

Отсутствует

 

Board footer

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