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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Открыть страницу в другом браузере из контекстного меню

№104-12-2015 19:50:19

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

[CB]Открыть страницу в другом браузере из контекстного меню

Открыть страницу в другом браузере из контекстного меню( Firefox 24 + )
Авторы: bunda1
Версия: от 23.05.2019.
Описание: код добавляет подменю Открыть страницу в другом браузере... в контекстное меню страницы, подменю даёт возможность открыть текущую страницу в других браузерах. В коде легко добавить свои браузеры или удалить лишние. Если браузеры указанные в коде не установлены в системе или в коде к ним указан неправильный путь иконки соответствующих браузеров не будет отображаться в подменю.

Скриншот подменю Открыть страницу в другом браузере:
http://i67.fastpic.ru/big/2015/1204/6b/5659fdef09c20f1eb9730c915278a96b.jpg

Выделить код

Код:

// Открыть страницу в другом браузере из контекстного меню, от 23.05.2019. ..................
(()=>{
   var contextMenu = document.getElementById("contentAreaContextMenu");
   var savepage = document.getElementById("context-savepage");

   var menu = contextMenu.insertBefore(document.createElement("menu"), savepage);
   menu.setAttribute("label", "Открыть страницу в другом браузере...");
   menu.setAttribute("class", "menu-iconic");
   menu.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsSAAALEgHS3X78AAAEgUlEQVQ4jU2TW2yTZQCG3+/7v/79266HraN1G8cNVoERNhk42BBmghiQBF3IMJnghYcbxUPEREiYF0bgihBREyNRQ4wENCwkBjlsyIA5WclWOe3ANrq2W1u6reu5/f//+7xQI8/tmzx5bx4yMjKCgYEByLIMAYBTirymEUYpbIrimkslzKXOpwLrV3NNceTAhZERNVfFC1mnNifGjO6i8NB4grCOjg7s378foBSVNju+3b6D+NUC/d43oGeK7dXLFlfu9BhKr244XObntvuvkPDURszNGiSjkhKTaYAtPO7tT15iQggAAASHVZJIs8sFlDqx69l1O4Lh+EeVddXPidrZN2XeZcDvswrGqnhBXXXowK2rRxtXGF0vy4XWzvOhG4wQ8o+IUCIAkYcoYrr+pXlqdo+nwQXR6BUk1WP13qhE5pRZX2cDMRRpn9U/LK870/egrfkZ66WCqir/P4IQakGHIad/LUaDbWrLIs2w+TbFyB16J75PDNg3I9V8XbKdO4GaEiffXWpqmZ8tN01Oq20ffLwuTv+1SOACvM7S+hcLtknbyzR56z0p2T9If3nYjmtTtSQV9BF51RqML1yOlP8hiQUfqU00va33RGD3a69fEZRQQgDoJmaAceu8t+/tWwxsDxK9o5OcOduICxE3ykvSSBUvhR66D1W/heyyGDG/GJLwxgSWb4q8NXh3xkgBEABQi6WqxvUr6neVzwHXbtJQO8dgQEWJG4gqZfDM3URZVzuml21DyRYdhk0JwutzWN0CT2OttJY6HApxWICG5uqad6qZVRry8s8j88j9YAJJi4JR5kZvnxfV1w+id8EupBreA1m5CNSVJZxRYTYT04JyuoTt2bNGb939KQjXthUNX8DJqAU/Oi1IbnFiY0UFgots2Onx4BQ/iC6sRX0sCclTBuR8EIQAnEAiRGYyM4MZ3PV06trz/Y81nM4UwZXOYLhlIbKPFdTHIzjh8+G3+FLkC1nU1uiQ2AMUIAlGOclnZR6OIcI4MTGiJzfoY4OlP0zbM1mJmx2KhHSxBe6KOKKBIdyOOFBpIHjaY8SOJV8AGT9ALKCEIDDBogODWj8DrBpJB+smxjPdV84Xeua3LjjCZUmzaBbmjffAVNGPl6pWIJGVYNW9KFE7IJgZah6abDYbfvq18HNsjocoVD8QuOWyrWzqyT1Qj4b/CPsU2cSy+bSWt+YwU4ihO9mJ7vhlNCndsBiMSGaYbmFWg7fX4D92OnEEACjJ+iEyYatTqI9qXBJ8x3yt492ROxQyQ07S5QLTcxmb/oKS0TebVS2dtOpWUSz19Rn9be2xV2eTPEQJqHTow70Q8T/X0vjjpuaaeRdnptPR/gujPekEXyOZjfN1JhOH0Ogn9gi15BTyKKDQ785lR949Htk7EVV7KAHlApyok5ehDn9lZdnJ9yU9l6Ys03X4ZMR/4GzCqtjleqnCXu1xs+IGU56MRrX43bHcWGimcJsQhADkhYAOAESdvIj80Dcw5vMYGQ7i4KlBdN4tIJEVIBD4L+knoRSAAPgT49/cEBl9hsIr+QAAAABJRU5ErkJggg==");
   menu.onclick =e=> e.target == menu && openWith(array[0][1]);
   addEventListener("popupshowing", ()=> menu.hidden = savepage.hidden, true, contextMenu);
   addDestructor(()=> menu.remove());

   var arr = [
      [ "Internet Explorer", "C:\\Program Files\\Internet Explorer\\iexplore.exe"],
      [ "Google Chrome", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"],
      [ "Opera", "C:\\Program Files\\Opera\\Opera.exe"],
      [ "Maxthon", "C:\\Program Files\\Maxthon\\Bin\\Maxthon.exe"],
      [ "SeaMonkey", "C:\\Program Files\\SeaMonkey\\seamonkey.exe"]
             ]
   var menuPopup = menu.appendChild(document.createElement("menupopup"));              
   arr.forEach(m=>{
      var label = m[0], path = m[1];
      var mItem = document.createElement("menuitem");
      mItem.setAttribute("label", label);
      mItem.setAttribute("class", "menuitem-iconic");
      mItem.setAttribute("image", "moz-icon://file://" + path); 
      mItem.onclick =()=> openWith(path);
      menuPopup.appendChild(mItem);
   });

   function openWith(path) {
      var uri = gBrowser.currentURI.spec;
      var uri = /.рф/.test(uri) ? Services.io.newURI(uri, null, null).asciiSpec : uri;  

      var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
      file.initWithPath(path);
      !file.exists() && custombuttons.alertSlide(self.label, "Файл не существует");
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      process.init(file);
      process.run(false, [uri], 1);
   };
})();

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

Отсутствует

 

№205-12-2015 03:11:31

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

Re: [CB]Открыть страницу в другом браузере из контекстного меню

Уважаемый  bunda1!
В своё время, если мне не изменяет память, Вы опубликовали похожую кнопку с выпадающим меню на самой кнопке.
Нельзя ли в ту кнопку добавить такое же подменю в контекстное меню?
Тогда настройка путей к браузерам будет одна.
Спасибо


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

Отсутствует

 

№305-12-2015 11:35:48

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

Re: [CB]Открыть страницу в другом браузере из контекстного меню

difabor пишет:

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

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

Отсутствует

 

№424-12-2016 12:46:16

rgdru
Участник
 
Группа: Members
Зарегистрирован: 07-04-2013
Сообщений: 36
UA: IE 11.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

bunda1
Есть-ли возможность добавить подменю "Открыть ссылку в другом браузере"

Отсутствует

 

№527-12-2016 19:44:38

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

Re: [CB]Открыть страницу в другом браузере из контекстного меню

rgdru пишет:

bunda1
Есть-ли возможность добавить подменю "Открыть ссылку в другом браузере"

А если так:

Выделить код

Код:

// Открыть страницу в другом браузере из контекстного меню, от 27.12.2015. ..................
((contextMenu, savepage)=> {

   var menu = contextMenu.insertBefore(document.createElement("menu"), savepage);
   menu.setAttribute("label", "Открыть в другом браузере...");
   menu.setAttribute("class", "menu-iconic");
   menu.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsSAAALEgHS3X78AAAEgUlEQVQ4jU2TW2yTZQCG3+/7v/79266HraN1G8cNVoERNhk42BBmghiQBF3IMJnghYcbxUPEREiYF0bgihBREyNRQ4wENCwkBjlsyIA5WclWOe3ANrq2W1u6reu5/f//+7xQI8/tmzx5bx4yMjKCgYEByLIMAYBTirymEUYpbIrimkslzKXOpwLrV3NNceTAhZERNVfFC1mnNifGjO6i8NB4grCOjg7s378foBSVNju+3b6D+NUC/d43oGeK7dXLFlfu9BhKr244XObntvuvkPDURszNGiSjkhKTaYAtPO7tT15iQggAAASHVZJIs8sFlDqx69l1O4Lh+EeVddXPidrZN2XeZcDvswrGqnhBXXXowK2rRxtXGF0vy4XWzvOhG4wQ8o+IUCIAkYcoYrr+pXlqdo+nwQXR6BUk1WP13qhE5pRZX2cDMRRpn9U/LK870/egrfkZ66WCqir/P4IQakGHIad/LUaDbWrLIs2w+TbFyB16J75PDNg3I9V8XbKdO4GaEiffXWpqmZ8tN01Oq20ffLwuTv+1SOACvM7S+hcLtknbyzR56z0p2T9If3nYjmtTtSQV9BF51RqML1yOlP8hiQUfqU00va33RGD3a69fEZRQQgDoJmaAceu8t+/tWwxsDxK9o5OcOduICxE3ykvSSBUvhR66D1W/heyyGDG/GJLwxgSWb4q8NXh3xkgBEABQi6WqxvUr6neVzwHXbtJQO8dgQEWJG4gqZfDM3URZVzuml21DyRYdhk0JwutzWN0CT2OttJY6HApxWICG5uqad6qZVRry8s8j88j9YAJJi4JR5kZvnxfV1w+id8EupBreA1m5CNSVJZxRYTYT04JyuoTt2bNGb939KQjXthUNX8DJqAU/Oi1IbnFiY0UFgots2Onx4BQ/iC6sRX0sCclTBuR8EIQAnEAiRGYyM4MZ3PV06trz/Y81nM4UwZXOYLhlIbKPFdTHIzjh8+G3+FLkC1nU1uiQ2AMUIAlGOclnZR6OIcI4MTGiJzfoY4OlP0zbM1mJmx2KhHSxBe6KOKKBIdyOOFBpIHjaY8SOJV8AGT9ALKCEIDDBogODWj8DrBpJB+smxjPdV84Xeua3LjjCZUmzaBbmjffAVNGPl6pWIJGVYNW9KFE7IJgZah6abDYbfvq18HNsjocoVD8QuOWyrWzqyT1Qj4b/CPsU2cSy+bSWt+YwU4ihO9mJ7vhlNCndsBiMSGaYbmFWg7fX4D92OnEEACjJ+iEyYatTqI9qXBJ8x3yt492ROxQyQ07S5QLTcxmb/oKS0TebVS2dtOpWUSz19Rn9be2xV2eTPEQJqHTow70Q8T/X0vjjpuaaeRdnptPR/gujPekEXyOZjfN1JhOH0Ogn9gi15BTyKKDQ785lR949Htk7EVV7KAHlApyok5ehDn9lZdnJ9yU9l6Ys03X4ZMR/4GzCqtjleqnCXu1xs+IGU56MRrX43bHcWGimcJsQhADkhYAOAESdvIj80Dcw5vMYGQ7i4KlBdN4tIJEVIBD4L+knoRSAAPgT49/cEBl9hsIr+QAAAABJRU5ErkJggg==");
   menu.onclick =e=> e.target == menu && openWith(array[0][1]);
   addEventListener("popupshowing", ()=> menu.hidden = !gContextMenu, false, contextMenu);
   addDestructor(()=> menu.remove() );

   var arr = [
      [ "Internet Explorer", "C:\\Program Files\\Internet Explorer\\iexplore.exe"],
      [ "Google Chrome",  "C:\\Documents and Settings\\Администратор\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe"],
      [ "Opera", "C:\\Program Files\\Opera\\Opera.exe"],
      [ "Maxthon",  "C:\\Program Files\\Maxthon\\Bin\\Maxthon.exe"],
      [ "SeaMonkey", "C:\\Program Files\\SeaMonkey\\seamonkey.exe"]
               ]
   var menuPopup = menu.appendChild( document.createElement("menupopup") );              
   arr.forEach((m)=>{
      var label = m[0], path = m[1];
      var mItem = document.createElement("menuitem");
      mItem.setAttribute("label", label);
      mItem.setAttribute("class", "menuitem-iconic");
      mItem.setAttribute("image", "moz-icon://file://" + path); 
      mItem.onclick =()=> openWith(path);
      menuPopup.appendChild( mItem );
   });

   function openWith(path) {  
      var loc = content.document.location;
      var url = (loc.host.slice(-3) == '.рф') ? Services.io.newURI(loc.href, null, null).asciiSpec : loc;  
     
      var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);    
      file.initWithPath(path);
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      process.init(file);

      !gContextMenu.onLink
      ? process.run(false, [content.location.href], 1)
      : process.run(false, [gContextMenu.getLinkURL()], 1);
   };

})(document.getElementById("contentAreaContextMenu"), document.getElementById("context-savepage"));

Отсутствует

 

№627-12-2016 20:52:16

rgdru
Участник
 
Группа: Members
Зарегистрирован: 07-04-2013
Сообщений: 36
UA: Palemoon 26.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

bunda1
Всё отлично. Спасибо!

Отсутствует

 

№728-12-2016 14:00:18

rgdru
Участник
 
Группа: Members
Зарегистрирован: 07-04-2013
Сообщений: 36
UA: Palemoon 26.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

bunda1
Сразу не заметил, ПКМ выделенного слова на странице, пункт меню как бы лишний

Отсутствует

 

№829-12-2016 10:47:35

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

Re: [CB]Открыть страницу в другом браузере из контекстного меню

rgdru пишет:

bunda1
Сразу не заметил, ПКМ выделенного слова на странице, пункт меню как бы лишний

Выделить код

Код:

// Открыть страницу в другом браузере из контекстного меню, от 27.12.2015. ..................
((contextMenu, savepage)=> {

   var menu = contextMenu.insertBefore(document.createElement("menu"), savepage);
   menu.setAttribute("label", "Открыть в другом браузере...");
   menu.setAttribute("class", "menu-iconic");
   menu.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsSAAALEgHS3X78AAAEgUlEQVQ4jU2TW2yTZQCG3+/7v/79266HraN1G8cNVoERNhk42BBmghiQBF3IMJnghYcbxUPEREiYF0bgihBREyNRQ4wENCwkBjlsyIA5WclWOe3ANrq2W1u6reu5/f//+7xQI8/tmzx5bx4yMjKCgYEByLIMAYBTirymEUYpbIrimkslzKXOpwLrV3NNceTAhZERNVfFC1mnNifGjO6i8NB4grCOjg7s378foBSVNju+3b6D+NUC/d43oGeK7dXLFlfu9BhKr244XObntvuvkPDURszNGiSjkhKTaYAtPO7tT15iQggAAASHVZJIs8sFlDqx69l1O4Lh+EeVddXPidrZN2XeZcDvswrGqnhBXXXowK2rRxtXGF0vy4XWzvOhG4wQ8o+IUCIAkYcoYrr+pXlqdo+nwQXR6BUk1WP13qhE5pRZX2cDMRRpn9U/LK870/egrfkZ66WCqir/P4IQakGHIad/LUaDbWrLIs2w+TbFyB16J75PDNg3I9V8XbKdO4GaEiffXWpqmZ8tN01Oq20ffLwuTv+1SOACvM7S+hcLtknbyzR56z0p2T9If3nYjmtTtSQV9BF51RqML1yOlP8hiQUfqU00va33RGD3a69fEZRQQgDoJmaAceu8t+/tWwxsDxK9o5OcOduICxE3ykvSSBUvhR66D1W/heyyGDG/GJLwxgSWb4q8NXh3xkgBEABQi6WqxvUr6neVzwHXbtJQO8dgQEWJG4gqZfDM3URZVzuml21DyRYdhk0JwutzWN0CT2OttJY6HApxWICG5uqad6qZVRry8s8j88j9YAJJi4JR5kZvnxfV1w+id8EupBreA1m5CNSVJZxRYTYT04JyuoTt2bNGb939KQjXthUNX8DJqAU/Oi1IbnFiY0UFgots2Onx4BQ/iC6sRX0sCclTBuR8EIQAnEAiRGYyM4MZ3PV06trz/Y81nM4UwZXOYLhlIbKPFdTHIzjh8+G3+FLkC1nU1uiQ2AMUIAlGOclnZR6OIcI4MTGiJzfoY4OlP0zbM1mJmx2KhHSxBe6KOKKBIdyOOFBpIHjaY8SOJV8AGT9ALKCEIDDBogODWj8DrBpJB+smxjPdV84Xeua3LjjCZUmzaBbmjffAVNGPl6pWIJGVYNW9KFE7IJgZah6abDYbfvq18HNsjocoVD8QuOWyrWzqyT1Qj4b/CPsU2cSy+bSWt+YwU4ihO9mJ7vhlNCndsBiMSGaYbmFWg7fX4D92OnEEACjJ+iEyYatTqI9qXBJ8x3yt492ROxQyQ07S5QLTcxmb/oKS0TebVS2dtOpWUSz19Rn9be2xV2eTPEQJqHTow70Q8T/X0vjjpuaaeRdnptPR/gujPekEXyOZjfN1JhOH0Ogn9gi15BTyKKDQ785lR949Htk7EVV7KAHlApyok5ehDn9lZdnJ9yU9l6Ys03X4ZMR/4GzCqtjleqnCXu1xs+IGU56MRrX43bHcWGimcJsQhADkhYAOAESdvIj80Dcw5vMYGQ7i4KlBdN4tIJEVIBD4L+knoRSAAPgT49/cEBl9hsIr+QAAAABJRU5ErkJggg==");
   menu.onclick =e=> e.target == menu && openWith(array[0][1]);
   addEventListener("popupshowing", ()=> menu.hidden = gContextMenu.isTextSelected || gContextMenu.onImage , false, contextMenu);
   addDestructor(()=> menu.remove() );

   var arr = [
      [ "Internet Explorer", "C:\\Program Files\\Internet Explorer\\iexplore.exe"],
      [ "Google Chrome",  "C:\\Documents and Settings\\Администратор\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe"],
      [ "Opera", "C:\\Program Files\\Opera\\Opera.exe"],
      [ "Maxthon",  "C:\\Program Files\\Maxthon\\Bin\\Maxthon.exe"],
      [ "SeaMonkey", "C:\\Program Files\\SeaMonkey\\seamonkey.exe"]
               ]
   var menuPopup = menu.appendChild( document.createElement("menupopup") );              
   arr.forEach((m)=>{
      var label = m[0], path = m[1];
      var mItem = document.createElement("menuitem");
      mItem.setAttribute("label", label);
      mItem.setAttribute("class", "menuitem-iconic");
      mItem.setAttribute("image", "moz-icon://file://" + path); 
      mItem.onclick =()=> openWith(path);
      menuPopup.appendChild( mItem );
   });

   function openWith(path) {  
      var loc = content.document.location;
      var url = (loc.host.slice(-3) == '.рф') ? Services.io.newURI(loc.href, null, null).asciiSpec : loc;  
     
      var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);    
      file.initWithPath(path);
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      process.init(file);

      !gContextMenu.onLink
      ? process.run(false, [content.location.href], 1)
      : process.run(false, [gContextMenu.getLinkURL()], 1);
   };

})(document.getElementById("contentAreaContextMenu"), document.getElementById("context-savepage"));

Отсутствует

 

№929-12-2016 11:37:51

rgdru
Участник
 
Группа: Members
Зарегистрирован: 07-04-2013
Сообщений: 36
UA: Palemoon 26.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

bunda1
Да, теперь нормально. Спасибо!
P.S. Добавил ещё gContextMenu.onTextInput

Отредактировано rgdru (02-01-2017 15:10:02)

Отсутствует

 

№1008-12-2017 16:42:26

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 98
UA: unknown 0.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

bunda1
Можно сделать так чтоб при правом клике мыши указать путь к нужному браузеру? я сторонник портабле программ и браузеров.

Отсутствует

 

№1123-12-2017 00:11:24

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 58.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

В 57 ссылку не передает

Отсутствует

 

№1222-03-2019 04:53:13

svin88
Участник
 
Группа: Members
Зарегистрирован: 26-07-2011
Сообщений: 13
UA: Firefox 60.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

Firefox 56   Контекстное меню с выбором браузеров выше замечательно работает,
а вот по кнопка с выпадающим меню
Открыть страницу в другом браузере( Firefox ) от 29.04.2017
никак не захотела работать - почему так ?

Отсутствует

 

№1322-03-2019 11:01:29

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

Re: [CB]Открыть страницу в другом браузере из контекстного меню

svin88 пишет:

а вот по кнопка с выпадающим меню
Открыть страницу в другом браузере( Firefox ) от 29.04.2017
никак не захотела работать - почему так ?

Потому что кнопка сохраняет данные в файле расширения Сustom Buttons - \\extensions\\custombuttons@xsms.org\\components\\CustomButtonsService.js, а в новых версиях  Сustom Buttons путь к этому файлу изменился. Попробуй так:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20%u0434%u0440%u0443%u0433%u043E%u043C%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsSAAALEgHS3X78AAAEgUlEQVQ4jU2TW2yTZQCG3+/7v/79266HraN1G8cNVoERNhk42BBmghiQBF3IMJnghYcbxUPEREiYF0bgihBREyNRQ4wENCwkBjlsyIA5WclWOe3ANrq2W1u6reu5/f//+7xQI8/tmzx5bx4yMjKCgYEByLIMAYBTirymEUYpbIrimkslzKXOpwLrV3NNceTAhZERNVfFC1mnNifGjO6i8NB4grCOjg7s378foBSVNju+3b6D+NUC/d43oGeK7dXLFlfu9BhKr244XObntvuvkPDURszNGiSjkhKTaYAtPO7tT15iQggAAASHVZJIs8sFlDqx69l1O4Lh+EeVddXPidrZN2XeZcDvswrGqnhBXXXowK2rRxtXGF0vy4XWzvOhG4wQ8o+IUCIAkYcoYrr+pXlqdo+nwQXR6BUk1WP13qhE5pRZX2cDMRRpn9U/LK870/egrfkZ66WCqir/P4IQakGHIad/LUaDbWrLIs2w+TbFyB16J75PDNg3I9V8XbKdO4GaEiffXWpqmZ8tN01Oq20ffLwuTv+1SOACvM7S+hcLtknbyzR56z0p2T9If3nYjmtTtSQV9BF51RqML1yOlP8hiQUfqU00va33RGD3a69fEZRQQgDoJmaAceu8t+/tWwxsDxK9o5OcOduICxE3ykvSSBUvhR66D1W/heyyGDG/GJLwxgSWb4q8NXh3xkgBEABQi6WqxvUr6neVzwHXbtJQO8dgQEWJG4gqZfDM3URZVzuml21DyRYdhk0JwutzWN0CT2OttJY6HApxWICG5uqad6qZVRry8s8j88j9YAJJi4JR5kZvnxfV1w+id8EupBreA1m5CNSVJZxRYTYT04JyuoTt2bNGb939KQjXthUNX8DJqAU/Oi1IbnFiY0UFgots2Onx4BQ/iC6sRX0sCclTBuR8EIQAnEAiRGYyM4MZ3PV06trz/Y81nM4UwZXOYLhlIbKPFdTHIzjh8+G3+FLkC1nU1uiQ2AMUIAlGOclnZR6OIcI4MTGiJzfoY4OlP0zbM1mJmx2KhHSxBe6KOKKBIdyOOFBpIHjaY8SOJV8AGT9ALKCEIDDBogODWj8DrBpJB+smxjPdV84Xeua3LjjCZUmzaBbmjffAVNGPl6pWIJGVYNW9KFE7IJgZah6abDYbfvq18HNsjocoVD8QuOWyrWzqyT1Qj4b/CPsU2cSy+bSWt+YwU4ihO9mJ7vhlNCndsBiMSGaYbmFWg7fX4D92OnEEACjJ+iEyYatTqI9qXBJ8x3yt492ROxQyQ07S5QLTcxmb/oKS0TebVS2dtOpWUSz19Rn9be2xV2eTPEQJqHTow70Q8T/X0vjjpuaaeRdnptPR/gujPekEXyOZjfN1JhOH0Ogn9gi15BTyKKDQ785lR949Htk7EVV7KAHlApyok5ehDn9lZdnJ9yU9l6Ys03X4ZMR/4GzCqtjleqnCXu1xs+IGU56MRrX43bHcWGimcJsQhADkhYAOAESdvIj80Dcw5vMYGQ7i4KlBdN4tIJEVIBD4L+knoRSAAPgT49/cEBl9hsIr+QAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%0A%20%20%20%20%20%20%20%20menu.showPopup%28self%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20%20%20%20%0A%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%0A%20%20%20%20%20%20%20%20setItemsToMenu%28getAppPath%28%29%29%3B%20%20%20%20%0A%7D%3B%0A%0A%0Avar%20menu%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0AaddEventListener%28%22popuphidden%22%2C%20%28%29%3D%3E%20setTimeout%28%28%29%3D%3E%20addToHelp%28%29%2C%2050%29%2C%20true%2C%20menu%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%0Afunction%20setItemsToMenu%28newPath%20%3D%20false%29%20%7B%0A%20%20%20menu.textContent%20%3D%20%22%22%3B%0A%20%20%20%0A%20%20%20menu.onclick%20%3D%28e%2C%20el%20%3D%20e.target%2C%20but%20%3D%20e.button%29%3D%3E%20%7B%0A%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20but%20%3D%3D%200%20%26%26%20el.path%20%26%26%20openWith%28el.path%29%3B%0A%20%20%20%20%20%20but%20%3D%3D%201%20%26%26%20addToSeparator%28e%29%3B%0A%20%20%20%20%20%20%21e.ctrlKey%20%26%26%20but%20%3D%3D%202%20%26%26%20removeNode%28e%29%3B%0A%20%20%20%20%20%20e.ctrlKey%20%26%26%20but%20%3D%3D%202%20%26%26%20changeMenuitemLabel%28e%29%3B%0A%20%20%20%7D%0A%20%20%20%0A%20%20%20var%20array%20%3D%20newPath%20%3F%20%28getAllPaths%28%29+%27%2C%27+newPath%29.split%28%27%2C%27%29%20%3A%20getAllPaths%28%29%3B%20%20%20%20%20%20%20%20%20%0A%20%20%20array.forEach%28path%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28path%20%3D%3D%20%22separator%22%29%20%7B%20menu.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%0A%20%20%20%20%20%20var%20mItem%20%3D%20menu.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20%20%20%20mItem.value%20%3D%20path%3B%0A%20%20%20%20%20%20mItem.path%20%3D%20path.split%28%22%3E%22%29.shift%28%29%3B%0A%20%20%20%20%20%20var%20name%20%3D%20path.split%28%22%5C%5C%22%29.pop%28%29.replace%28%22.exe%22%2C%20%22%22%29%3B%0A%20%20%20%20%20%20var%20name%20%3D%20%28/%3E/.test%28name%29%29%20%3F%20name.split%28%22%3E%22%29.pop%28%29%20%3A%20name%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22label%22%2C%20name%5B0%5D.toUpperCase%28%29%20+%20name.slice%281%29%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22tooltiptext%22%2C%20mItem.path%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22image%22%2C%20%22moz-icon%3A//file%3A//%22%20+%20mItem.path%29%3B%0A%20%20%20%20%20%20mItem.onwheel%20%3De%3D%3E%20moveNode%28e%29%3B%0A%20%20%20%7D%29%0A%7D%3B%0AsetItemsToMenu%28%29%3B%0A%0A%0Afunction%20moveNode%28e%2C%20el%20%3D%20e.target%29%20%7B%0A%20%20%20menu.insertBefore%28el%2C%20e.deltaY%20%3E%200%20%3F%20el.nextSibling.nextSibling%20%3A%20%28el.previousSibling%20%7C%7C%20el%29%29%3B%0A%7D%3B%0A%0A%0Afunction%20addToSeparator%28e%2C%20el%20%3D%20e.target%29%20%7B%0A%20%20%20menu.insertBefore%28document.createElement%28%22menuseparator%22%29%2C%20el.nextSibling%29%3B%0A%7D%3B%0A%0A%0Afunction%20removeNode%28e%2C%20el%20%3D%20e.target%29%20%7B%0A%20%20%20el.remove%28%29%3B%0A%7D%3B%0A%0A%0Afunction%20changeMenuitemLabel%28e%2C%20el%20%3D%20e.target%2C%20i%20%3D%200%29%20%7B%0A%20%20%20menu.hidePopup%28%29%3B%20%20%0A%0A%20%20%20var%20label%20%3D%20custombuttons.promptBox%28%27%27%2C%20%27%u0412%u0435%u0434%u0438%u0442%u0435%20%u0434%u0440%u0443%u0433%u043E%u0435%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u0443%u043D%u043A%u0442%u0430%27%29%5B1%5D%3B%0A%20%20%20if%20%28label%20%21%3D%20%27%27%29%20%7B%0A%20%20%20%20%20%20%20el.value%20%3D%20el.value%20+%20%22%3E%22%20+%20label%3B%0A%20%20%20%20%20%20%20el.setAttribute%28%27label%27%2C%20label%29%3B%0A%20%20%20%20%20%20%20addToHelp%28%29%3B%0A%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%20%0Afunction%20getAppPath%28%29%20%7B%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0444%u0430%u0439%u043B%22%2C%20fp.modeOpen%29%3B%0A%20%20%20fp.appendFilters%28fp.filterApps%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u043F%u0443%u0442%u044C%20%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%22%2C%20fp.modeOpen%29%3B%0A%20%20%20if%20%28fp.show%28%29%20%3D%3D%20fp.returnCancel%29%20return%3B%0A%20%20%20return%20fp.file.path%3B%0A%7D%3B%0A%0A%0Afunction%20getAllPaths%28%29%20%7B%20%0A%20%20%20return%20self.getAttribute%28%27Help%27%29.split%28%27%5Cn%27%29.filter%28%28path%29%3D%3E%20/%5CS/.test%28path%29%29%3B%20%0A%7D%3B%0A%0A%0Afunction%20addToHelp%28%29%20%7B%0A%20%20%20var%20paths%20%3D%20%5B...menu.children%5D.map%28%28el%29%3D%3E%20el.value%20%7C%7C%20%22separator%22%29.join%28%22%5Cn%22%29%3B%0A%20%20%20%0A%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%22ProfD%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20dir.initWithPath%28dir.path%20+%20%22%5C%5Cextensions%5C%5Ccustombuttons-signed@infocatcher%5C%5Ccomponents%5C%5CCustomButtonsService.js%22%29%3B%0A%20%20%20var%20url%20%3D%20Services.io.newFileURI%28dir%29.spec%2C%20cbs%20%3D%20%7B%7D%3B%0A%20%20%20Services.scriptloader.loadSubScript%28url%2C%20cbs%29%3B%0A%20%20%20var%20AO%20%3D%20new%20cbs.AppObject%28%29%2C%20btn%20%3D%20AO.getButton%28_id%29%3B%0A%20%20%20self.setAttribute%28%22Help%22%2C%20paths%29%3B%0A%20%20%20btn.setAttribute%28%22Help%22%2C%20paths%29%3B%0A%20%20%20AO.overlay.saveOverlayToProfile%28%29%3B%20%20%20%0A%7D%3B%0A%0A%0Afunction%20openWith%28path%29%20%7B%0A%20%20%20var%20loc%20%3D%20content.document.location%3B%0A%20%20%20var%20loc%20%3D%20loc.host.endsWith%28%22.%u0440%u0444%22%29%20%3F%20Services.io.newURI%28loc.href%2C%20null%2C%20null%29.asciiSpec%20%3A%20loc%3B%20%20%0A%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%21file.exists%28%29%20%26%26%20custombuttons.alertSlide%28self.label%2C%20%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%22%29%3B%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20%5Bloc%5D%2C%201%29%3B%0A%7D%3B%0A%0A%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%u043C%u044B%20%5Cn%u0421%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0432%20%u043C%u0435%u043D%u044E%20%u043D%u043E%u0432%u044B%u0439%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%5Cn%u0424%u0443%u043D%u043A%u0446%u0438%u0438%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043C%u0435%u043D%u044E%3A%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u0421%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u041F%3A%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u043F%u0443%u043D%u043A%u0442%20%u043C%u0435%u043D%u044E%20%u0438%u043B%u0438%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20Ctrl+%u041F%3A%20%u0418%u0437%u043C%u0435%u043D%u0438%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u0443%u043D%u043A%u0442%u0430%20%u043C%u0435%u043D%u044E%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u041A%u043E%u043B%u0451%u0441%u0438%u043A%u043E%u043C%20%u043C%u044B%u0448%u0438%20%u043C%u043E%u0436%u043D%u043E%20%u043F%u0435%u0440%u0435%u0434%u0432%u0438%u0433%u0430%u0442%u044C%20%u043F%u0443%u043D%u043A%u0442%u044B%20%u043C%u0435%u043D%u044E%20%u0438%u043B%u0438%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u0438%22%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BC%3A%5CProgram%20Files%5CInternet%20Explorer%5Ciexplore.exe%0Aseparator%0AC%3A%5CProgram%20Files%20%28x86%29%5CWindows%20Media%20Player%5Cwmplayer.exe%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№1422-03-2019 12:28:52

svin88
Участник
 
Группа: Members
Зарегистрирован: 26-07-2011
Сообщений: 13
UA: Firefox 60.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

Firefox 56
Сделал так - код кнопки по предыдущему посту

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20%u0434%u0440%u0443%u0433%u043E%u043C%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsSAAALEgHS3X78AAAEgUlEQVQ4jU2TW2yTZQCG3+/7v/79266HraN1G8cNVoERNhk42BBmghiQBF3IMJnghYcbxUPEREiYF0bgihBREyNRQ4wENCwkBjlsyIA5WclWOe3ANrq2W1u6reu5/f//+7xQI8/tmzx5bx4yMjKCgYEByLIMAYBTirymEUYpbIrimkslzKXOpwLrV3NNceTAhZERNVfFC1mnNifGjO6i8NB4grCOjg7s378foBSVNju+3b6D+NUC/d43oGeK7dXLFlfu9BhKr244XObntvuvkPDURszNGiSjkhKTaYAtPO7tT15iQggAAASHVZJIs8sFlDqx69l1O4Lh+EeVddXPidrZN2XeZcDvswrGqnhBXXXowK2rRxtXGF0vy4XWzvOhG4wQ8o+IUCIAkYcoYrr+pXlqdo+nwQXR6BUk1WP13qhE5pRZX2cDMRRpn9U/LK870/egrfkZ66WCqir/P4IQakGHIad/LUaDbWrLIs2w+TbFyB16J75PDNg3I9V8XbKdO4GaEiffXWpqmZ8tN01Oq20ffLwuTv+1SOACvM7S+hcLtknbyzR56z0p2T9If3nYjmtTtSQV9BF51RqML1yOlP8hiQUfqU00va33RGD3a69fEZRQQgDoJmaAceu8t+/tWwxsDxK9o5OcOduICxE3ykvSSBUvhR66D1W/heyyGDG/GJLwxgSWb4q8NXh3xkgBEABQi6WqxvUr6neVzwHXbtJQO8dgQEWJG4gqZfDM3URZVzuml21DyRYdhk0JwutzWN0CT2OttJY6HApxWICG5uqad6qZVRry8s8j88j9YAJJi4JR5kZvnxfV1w+id8EupBreA1m5CNSVJZxRYTYT04JyuoTt2bNGb939KQjXthUNX8DJqAU/Oi1IbnFiY0UFgots2Onx4BQ/iC6sRX0sCclTBuR8EIQAnEAiRGYyM4MZ3PV06trz/Y81nM4UwZXOYLhlIbKPFdTHIzjh8+G3+FLkC1nU1uiQ2AMUIAlGOclnZR6OIcI4MTGiJzfoY4OlP0zbM1mJmx2KhHSxBe6KOKKBIdyOOFBpIHjaY8SOJV8AGT9ALKCEIDDBogODWj8DrBpJB+smxjPdV84Xeua3LjjCZUmzaBbmjffAVNGPl6pWIJGVYNW9KFE7IJgZah6abDYbfvq18HNsjocoVD8QuOWyrWzqyT1Qj4b/CPsU2cSy+bSWt+YwU4ihO9mJ7vhlNCndsBiMSGaYbmFWg7fX4D92OnEEACjJ+iEyYatTqI9qXBJ8x3yt492ROxQyQ07S5QLTcxmb/oKS0TebVS2dtOpWUSz19Rn9be2xV2eTPEQJqHTow70Q8T/X0vjjpuaaeRdnptPR/gujPekEXyOZjfN1JhOH0Ogn9gi15BTyKKDQ785lR949Htk7EVV7KAHlApyok5ehDn9lZdnJ9yU9l6Ys03X4ZMR/4GzCqtjleqnCXu1xs+IGU56MRrX43bHcWGimcJsQhADkhYAOAESdvIj80Dcw5vMYGQ7i4KlBdN4tIJEVIBD4L+knoRSAAPgT49/cEBl9hsIr+QAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%0A%20%20%20%20%20%20%20%20menu.showPopup%28self%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20%20%20%20%0A%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%0A%20%20%20%20%20%20%20%20setItemsToMenu%28getAppPath%28%29%29%3B%20%20%20%20%0A%7D%3B%0A%0A%0Avar%20menu%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0AaddEventListener%28%22popuphidden%22%2C%20%28%29%3D%3E%20setTimeout%28%28%29%3D%3E%20addToHelp%28%29%2C%2050%29%2C%20true%2C%20menu%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%0Afunction%20setItemsToMenu%28newPath%20%3D%20false%29%20%7B%0A%20%20%20menu.textContent%20%3D%20%22%22%3B%0A%20%20%20%0A%20%20%20menu.onclick%20%3D%28e%2C%20el%20%3D%20e.target%2C%20but%20%3D%20e.button%29%3D%3E%20%7B%0A%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20but%20%3D%3D%200%20%26%26%20el.path%20%26%26%20openWith%28el.path%29%3B%0A%20%20%20%20%20%20but%20%3D%3D%201%20%26%26%20addToSeparator%28e%29%3B%0A%20%20%20%20%20%20%21e.ctrlKey%20%26%26%20but%20%3D%3D%202%20%26%26%20removeNode%28e%29%3B%0A%20%20%20%20%20%20e.ctrlKey%20%26%26%20but%20%3D%3D%202%20%26%26%20changeMenuitemLabel%28e%29%3B%0A%20%20%20%7D%0A%20%20%20%0A%20%20%20var%20array%20%3D%20newPath%20%3F%20%28getAllPaths%28%29+%27%2C%27+newPath%29.split%28%27%2C%27%29%20%3A%20getAllPaths%28%29%3B%20%20%20%20%20%20%20%20%20%0A%20%20%20array.forEach%28path%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28path%20%3D%3D%20%22separator%22%29%20%7B%20menu.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%0A%20%20%20%20%20%20var%20mItem%20%3D%20menu.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20%20%20%20mItem.value%20%3D%20path%3B%0A%20%20%20%20%20%20mItem.path%20%3D%20path.split%28%22%3E%22%29.shift%28%29%3B%0A%20%20%20%20%20%20var%20name%20%3D%20path.split%28%22%5C%5C%22%29.pop%28%29.replace%28%22.exe%22%2C%20%22%22%29%3B%0A%20%20%20%20%20%20var%20name%20%3D%20%28/%3E/.test%28name%29%29%20%3F%20name.split%28%22%3E%22%29.pop%28%29%20%3A%20name%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22label%22%2C%20name%5B0%5D.toUpperCase%28%29%20+%20name.slice%281%29%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22tooltiptext%22%2C%20mItem.path%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22image%22%2C%20%22moz-icon%3A//file%3A//%22%20+%20mItem.path%29%3B%0A%20%20%20%20%20%20mItem.onwheel%20%3De%3D%3E%20moveNode%28e%29%3B%0A%20%20%20%7D%29%0A%7D%3B%0AsetItemsToMenu%28%29%3B%0A%0A%0Afunction%20moveNode%28e%2C%20el%20%3D%20e.target%29%20%7B%0A%20%20%20menu.insertBefore%28el%2C%20e.deltaY%20%3E%200%20%3F%20el.nextSibling.nextSibling%20%3A%20%28el.previousSibling%20%7C%7C%20el%29%29%3B%0A%7D%3B%0A%0A%0Afunction%20addToSeparator%28e%2C%20el%20%3D%20e.target%29%20%7B%0A%20%20%20menu.insertBefore%28document.createElement%28%22menuseparator%22%29%2C%20el.nextSibling%29%3B%0A%7D%3B%0A%0A%0Afunction%20removeNode%28e%2C%20el%20%3D%20e.target%29%20%7B%0A%20%20%20el.remove%28%29%3B%0A%7D%3B%0A%0A%0Afunction%20changeMenuitemLabel%28e%2C%20el%20%3D%20e.target%2C%20i%20%3D%200%29%20%7B%0A%20%20%20menu.hidePopup%28%29%3B%20%20%0A%0A%20%20%20var%20label%20%3D%20custombuttons.promptBox%28%27%27%2C%20%27%u0412%u0435%u0434%u0438%u0442%u0435%20%u0434%u0440%u0443%u0433%u043E%u0435%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u0443%u043D%u043A%u0442%u0430%27%29%5B1%5D%3B%0A%20%20%20if%20%28label%20%21%3D%20%27%27%29%20%7B%0A%20%20%20%20%20%20%20el.value%20%3D%20el.value%20+%20%22%3E%22%20+%20label%3B%0A%20%20%20%20%20%20%20el.setAttribute%28%27label%27%2C%20label%29%3B%0A%20%20%20%20%20%20%20addToHelp%28%29%3B%0A%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%20%0Afunction%20getAppPath%28%29%20%7B%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0444%u0430%u0439%u043B%22%2C%20fp.modeOpen%29%3B%0A%20%20%20fp.appendFilters%28fp.filterApps%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u043F%u0443%u0442%u044C%20%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%22%2C%20fp.modeOpen%29%3B%0A%20%20%20if%20%28fp.show%28%29%20%3D%3D%20fp.returnCancel%29%20return%3B%0A%20%20%20return%20fp.file.path%3B%0A%7D%3B%0A%0A%0Afunction%20getAllPaths%28%29%20%7B%20%0A%20%20%20return%20self.getAttribute%28%27Help%27%29.split%28%27%5Cn%27%29.filter%28%28path%29%3D%3E%20/%5CS/.test%28path%29%29%3B%20%0A%7D%3B%0A%0A%0Afunction%20addToHelp%28%29%20%7B%0A%20%20%20var%20paths%20%3D%20%5B...menu.children%5D.map%28%28el%29%3D%3E%20el.value%20%7C%7C%20%22separator%22%29.join%28%22%5Cn%22%29%3B%0A%20%20%20%0A%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%22ProfD%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20dir.initWithPath%28dir.path%20+%20%22%5C%5Cextensions%5C%5Ccustombuttons-signed@infocatcher%5C%5Ccomponents%5C%5CCustomButtonsService.js%22%29%3B%0A%20%20%20var%20url%20%3D%20Services.io.newFileURI%28dir%29.spec%2C%20cbs%20%3D%20%7B%7D%3B%0A%20%20%20Services.scriptloader.loadSubScript%28url%2C%20cbs%29%3B%0A%20%20%20var%20AO%20%3D%20new%20cbs.AppObject%28%29%2C%20btn%20%3D%20AO.getButton%28_id%29%3B%0A%20%20%20self.setAttribute%28%22Help%22%2C%20paths%29%3B%0A%20%20%20btn.setAttribute%28%22Help%22%2C%20paths%29%3B%0A%20%20%20AO.overlay.saveOverlayToProfile%28%29%3B%20%20%20%0A%7D%3B%0A%0A%0Afunction%20openWith%28path%29%20%7B%0A%20%20%20var%20loc%20%3D%20content.document.location%3B%0A%20%20%20var%20loc%20%3D%20loc.host.endsWith%28%22.%u0440%u0444%22%29%20%3F%20Services.io.newURI%28loc.href%2C%20null%2C%20null%29.asciiSpec%20%3A%20loc%3B%20%20%0A%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%21file.exists%28%29%20%26%26%20custombuttons.alertSlide%28self.label%2C%20%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%22%29%3B%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20%5Bloc%5D%2C%201%29%3B%0A%7D%3B%0A%0A%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%u043C%u044B%20%5Cn%u0421%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0432%20%u043C%u0435%u043D%u044E%20%u043D%u043E%u0432%u044B%u0439%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%5Cn%u0424%u0443%u043D%u043A%u0446%u0438%u0438%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043C%u0435%u043D%u044E%3A%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u0421%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u041F%3A%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u043F%u0443%u043D%u043A%u0442%20%u043C%u0435%u043D%u044E%20%u0438%u043B%u0438%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20Ctrl+%u041F%3A%20%u0418%u0437%u043C%u0435%u043D%u0438%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u0443%u043D%u043A%u0442%u0430%20%u043C%u0435%u043D%u044E%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u041A%u043E%u043B%u0451%u0441%u0438%u043A%u043E%u043C%20%u043C%u044B%u0448%u0438%20%u043C%u043E%u0436%u043D%u043E%20%u043F%u0435%u0440%u0435%u0434%u0432%u0438%u0433%u0430%u0442%u044C%20%u043F%u0443%u043D%u043A%u0442%u044B%20%u043C%u0435%u043D%u044E%20%u0438%u043B%u0438%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u0438%22%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BC%3A%5CProgram%20Files%5CInternet%20Explorer%5Ciexplore.exe%0Aseparator%0AC%3A%5CProgram%20Files%20%28x86%29%5CWindows%20Media%20Player%5Cwmplayer.exe%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Код инициализации из поста  bunda1  который ранее был

Выделить код

Код:

this.onclick =e=> {
   if ( e.button == 0 ) 
        menu.showPopup(self, -1, -1, "popup", "bottomleft", "topleft");    

   if ( e.button == 1 )
        setItemsToMenu(getAppPath());    
};


var menu = self.appendChild(document.createElement("menupopup"));
addEventListener("popuphidden", ()=> setTimeout(()=> addToHelp(), 50), true, menu);

         
function setItemsToMenu(newPath = false) {
   menu.textContent = "";
   
   menu.onclick =(e, el = e.target, but = e.button)=> {
      e.preventDefault();
      e.stopPropagation();
      
      but == 0 && el.path && openWith(el.path);
      but == 1 && addToSeparator(e);
      !e.ctrlKey && but == 2 && removeNode(e);
      e.ctrlKey && but == 2 && changeMenuitemLabel(e);
   }
   
   var array = newPath ? (getAllPaths()+','+newPath).split(',') : getAllPaths();         
   array.forEach(path=> {
      if (path == "separator") { menu.appendChild(document.createElement("menuseparator")); return };
      var mItem = menu.appendChild(document.createElement("menuitem"));
      mItem.value = path;
      mItem.path = path.split(">").shift();
      var name = path.split("\\").pop().replace(".exe", "");
      var name = (/>/.test(name)) ? name.split(">").pop() : name;
      mItem.setAttribute("label", name[0].toUpperCase() + name.slice(1));
      mItem.setAttribute("tooltiptext", mItem.path);
      mItem.setAttribute("class", "menuitem-iconic");
      mItem.setAttribute("image", "moz-icon://file://" + mItem.path);
      mItem.onwheel =e=> moveNode(e);
   })
};
setItemsToMenu();


function moveNode(e, el = e.target) {
   menu.insertBefore(el, e.deltaY > 0 ? el.nextSibling.nextSibling : (el.previousSibling || el));
};


function addToSeparator(e, el = e.target) {
   menu.insertBefore(document.createElement("menuseparator"), el.nextSibling);
};


function removeNode(e, el = e.target) {
   el.remove();
};


function changeMenuitemLabel(e, el = e.target, i = 0) {
   menu.hidePopup();  

   var label = custombuttons.promptBox('', 'Ведите другое название пункта')[1];
   if (label != '') {
       el.value = el.value + ">" + label;
       el.setAttribute('label', label);
       addToHelp();
       }
};

 
function getAppPath() {
   var fp = window.makeFilePicker();
   fp.init(window, "Открыть файл", fp.modeOpen);
   fp.appendFilters(fp.filterApps);
   fp.init(window, "Укажите путь к программе", fp.modeOpen);
   if (fp.show() == fp.returnCancel) return;
   return fp.file.path;
};


function getAllPaths() { 
   return self.getAttribute('Help').split('\n').filter((path)=> /\S/.test(path)); 
};


function addToHelp() {
   var paths = [...menu.children].map((el)=> el.value || "separator").join("\n");

   var dir = Services.dirsvc.get("ProfD", Ci.nsIFile);
   dir.initWithPath(dir.path + "\\extensions\\custombuttons@xsms.org\\components\\CustomButtonsService.js");
   var url = Services.io.newFileURI(dir).spec, cbs = {};
   Services.scriptloader.loadSubScript(url, cbs);
   var AO = new cbs.AppObject(), btn = AO.getButton(_id);
   self.setAttribute("Help", paths);
   btn.setAttribute("Help", paths);
   AO.overlay.saveOverlayToProfile();   
};


function openWith(path) {
   var loc = content.document.location;
   var loc = loc.host.endsWith(".рф") ? Services.io.newURI(loc.href, null, null).asciiSpec : loc;  

   var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
   file.initWithPath(path);
   !file.exists() && custombuttons.alertSlide(self.label, "Файл не существует");
   var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   process.init(file);
   process.run(false, [loc], 1);
};


this.tooltipText = "Л: Открыть меню с браузерамы \nС: Добавить в меню новый браузер\
                   \n\nФункции кликов мыши для меню:\
                   \n  Л: Открыть страницу\
                   \n  С: Добавить разделитель\
                   \n  П: Удалить пункт меню или разделитель\
                   \n  Ctrl+П: Изменить название пункта меню\
                   \n  Колёсиком мыши можно передвигать пункты меню или разделители";

к сожалению так не получается кнопку сделать - не заработало ...  По средней кнопке открывается проводник - добавляю ссылку на браузер  и потом по левой кнопке мыши на значке - пустое поле открывается - по Ctrl+П ввожу например InternetExplorer - пункт меню появляется - НО  1.Значка нет IE перед пунктом меню 2.Текущая страница не открывается выборе пункта меню

Отредактировано svin88 (22-03-2019 13:35:44)

Отсутствует

 

№1522-03-2019 13:44:40

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

Re: [CB]Открыть страницу в другом браузере из контекстного меню

Замени в коде инициализации кнопки:

Выделить код

Код:

   dir.initWithPath(dir.path + "\extensions\custombuttons@xsms.org\components\CustomButtonsService.js");

на:

Выделить код

Код:

   dir.initWithPath(dir.path + "\extensions\custombuttons-signed@infocatcher\components\CustomButtonsService.js");

Отсутствует

 

№1622-03-2019 13:59:49

svin88
Участник
 
Группа: Members
Зарегистрирован: 26-07-2011
Сообщений: 13
UA: Firefox 60.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

не помогло к сожалению - текущая страница не открывается в другом браузере (пробую Opera и IE) при выборе пункта меню и не подгружаются значки браузеров из *.exe

Отредактировано svin88 (22-03-2019 14:05:46)

Отсутствует

 

№1722-03-2019 14:09:07

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

Re: [CB]Открыть страницу в другом браузере из контекстного меню

У меня на Firefox 56 работает кнопка с Сегодня 11:01:29. А многопроцессный режим включен? А в папке профиля в папке extensions есть папка custombuttons-signed@infocatcher или что подобное?

Отсутствует

 

№1822-03-2019 15:04:04

svin88
Участник
 
Группа: Members
Зарегистрирован: 26-07-2011
Сообщений: 13
UA: Firefox 60.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

custombuttons-signed@infocatcher - папка есть
многопроцессный режим включен - в нем дело ?

Отсутствует

 

№1922-03-2019 15:50:28

svin88
Участник
 
Группа: Members
Зарегистрирован: 26-07-2011
Сообщений: 13
UA: Firefox 60.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

Убрал многопроцессный режим - хм заработало    что делал чтоб убрать
about:config
далее
browser.tabs.remote.autostart  - false 
extensions.e10sBlockedByAddons - true
extensions.e10sBlocksEnabling  - true
dom.ipc.process - 1
browser.tabs.remote.force-enable - false

жалко конечно что кнопка не работает в многопроцессном режиме ...

хорошо - в таком случае можно по простому ? без наворотов и выпадающего меню - одна кнопка по нажатию - один браузер
както так - 5 кнопок - на каждую свой  код

https://b.radikal.ru/b39/1903/27/40351cb7f904.jpg


bunda1  дадите код для примера на 1 простую кнопку - 1 браузер ??

Отредактировано svin88 (22-03-2019 15:53:18)

Отсутствует

 

№2022-03-2019 17:34:13

svin88
Участник
 
Группа: Members
Зарегистрирован: 26-07-2011
Сообщений: 13
UA: Firefox 60.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

Вот нашел кнопку для примера - открыть ссылку в IE - но нерабочая оказалась ...

Код кнопки

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20Internet%20Explorer%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAgDAgAPAgECFwAAAQ8AAAAQBgEAIRUJADAVCAAxBgEAIwAAABIAAAERAgECGAMCABAAAAAJAAAABQAAAAIAAAABAAAABAIBAAwAAAINBgEAC0QrCVCScT6nxKFt1de2g+fXtoPnw6Ft1pJxPqhEKwlSBgEADQAAAg8CAQAOAAAABgAAAAIAAAAAAgEAAQAAAQBDJQANuIc7mfjSlvz+3q3/99en//PToP/z06D/99en//7erf/40pb8uIc7mUMlAA0AAAEAAgEAAQAAAAACAgABAAABAFQwABLpq03H8s6Y/+W8gf3itnX74rZ2+uK3evzit3r84rZ2+uO2dfvlvIH98s6Y/+mrTcdUMAASAAABAAICAAEAAAIBFAoAAM2QM6zovHv/3Kle+t+sYP3frmf+6rZp/+61Yv/utWL/6rZp/9+uZ/7fq2D83Kle+ei7e//NjzKsEwkAAAAAAgEAAAAAeUwJUuyvVf/Xnkn72qBJ/t2kTv/lo0DypG0ajnxPCU58TwlOpG0ajuWjQPLepU//26JK/tigS/3tsVf/e08LWAAAAAAfEQAAwYEZt9ubMv/VlCn71pcu/9eRIt9hOgEkAAAAAAIBAAICAQACAAAAAGA5ASbQjB/N05Eo5dGPJN3blyvvrHEUlwUBAABgOgAh35QZ7dKRIP/Vkh/81pMf/8aAD8OGVwt8i1sOkZBdDY6QXQ2Oi1sOj4NVDYK4dQqVzIIMpMd/DaHLgQymu3cKjjwlABJbOQVL4Z84/9abPP/Ymzr/2Js7/9udPv/npkD/56ZB/+emQf/npkH/56ZB/+imP//dnz7/2Zw9/9mcPP/XnD7/56M5/2I+BExdPQlV565Y/9yoW/7fql3/36xg/+CtYf3bqmL42qli+NqpYvjaqWL42qli+NqpYfjfrGH836tf/d6pXP3cp1r85q1X/1w8ClVfOwQ87Lpv++O5e//luHb+5bh3/+W5ef/yw3//+MV9//bEff/2xH3/+MV9//LDf//luXn/5bh3/+W4dv7juXv/7Lpu+187BDxOLAAM6rhr2uvJl//owIX87cmT/9WfT9V6Tg5WYkYfXWxMH2VsTB9lYkYfXXpODlbVn0/V7cmT/+jAhfzryZf/6rhr2k4sAAwAAAAArIA+j/3juP/ry5j679Gh//LQm/+qeS1/HA0ABAAAAQAAAAEAHA0AA6p4LX7y0Jv/79Gh/+vLmPr+47f/rIA9jwAAAAAAAAAATi4AIvvXnvD04sH/89ip/fXdtv//5rv/8ciH6dinWrjYp1q48ciH6f/mu//13bb/89ip/fXiwf/51p7wTi4AIwAAAAACAgIDAAAAAJhoIWP/8cr/9+nQ/ffhufv34778++vM///v0P//79D/++vM//fjvvz34bn79+nQ/f/wyv+mcCFjAAAAAAECAgMBAQAAAAACAhgKAAC2fShs/+3C/P//6//98dn+++zO/Prqyvr66sr6++zO/P3x2f7//+v//+3C/LZ9KGwYCgAAAAACAgEBAAAAAAAAAQEAAAEBAgMIAQAAWDgLNMqmbbT+58H3//fd///85P///OT///fd//7nwffKpm20WDgLNAgBAAAAAQIDAQAAAAAAAAAAAAAAAAAAAAEBAAACAQIDAAABAAYBAAByRQYrpnYqZqeCSYengkmHpnYqZnJFBisGAQAAAAABAAIBAgMBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0Afile.initWithPath%28%22C%3A%5C%5CProgram%20Files%5C%5CInternet%20Explorer%5C%5Ciexplore.exe%22%29%3B%0Avar%20process%20%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0Avar%20args%20%3D%20%5Bwindow.content.location.href%5D%3B%0Aprocess.init%28%20file%20%29%3B%0Aprocess.run%28%20false%2C%20args%2C%20args.length%20%29%3B%0A%0A%0A%0A%0A%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Код инициализации

Выделить код

Код:

var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath("C:\\Program Files\\Internet Explorer\\iexplore.exe");
var process  = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
var args = [window.content.location.href];
process.init( file );
process.run( false, args, args.length );

Отсутствует

 

№2129-03-2019 16:21:18

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

Re: [CB]Открыть страницу в другом браузере из контекстного меню

svin88 положить в секцию /*CODE*/

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

Выделить код

Код:

/*CODE*/

  var profileDir = Components.classes["@mozilla.org/file/directory_service;1"]
    .getService(Components.interfaces.nsIProperties)
    .get("ProgF", Components.interfaces.nsIFile)
    .path;
  var IE_PATH = profileDir + "\\Internet Explorer\\iexplore.exe";      
  var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
  file.initWithPath(IE_PATH);
  if (!file.exists()) {
  alert("File does not exist: " + IE_PATH);
  return;
}
  var process  = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
  try {
  var args = [gBrowser.currentURI.spec];
  process.init(file);
  process.run(false, args, args.length);
      }
  catch (ex) {
  alert("Failed to execute: " + IE_PATH);
}

Отредактировано Andrey_Krropotkin (29-03-2019 16:23:16)

Отсутствует

 

№22Вчера 14:08:57

svin88
Участник
 
Группа: Members
Зарегистрирован: 26-07-2011
Сообщений: 13
UA: Firefox 56.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

сделал кнопку на портативку Opera - не прокатило как выше с IE  Что еще надо поменять в коде кроме пути ?

Выделить код

Код:

/*CODE*/

  var profileDir = Components.classes["@mozilla.org/file/directory_service;1"]
    .getService(Components.interfaces.nsIProperties)
    .get("ProgF", Components.interfaces.nsIFile)
    .path;
  
   var IE_PATH = "C:\\Program Files (Oleg)\\Opera Portable\\launcher.exe";   

  var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
  file.initWithPath(IE_PATH);
  if (!file.exists()) {
  alert("File does not exist: " + IE_PATH);
  return;
}
  var process  = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
  try {
  var args = [gBrowser.currentURI.spec];
  process.init(file);
  process.run(false, args, args.length);
      }
  catch (ex) {
  alert("Failed to execute: " + IE_PATH);
}

Отредактировано svin88 (Вчера 15:24:16)

Отсутствует

 

№23Вчера 14:29:17

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

Re: [CB]Открыть страницу в другом браузере из контекстного меню

svin88 пишет:

сделал кнопку на портативку Opera - не прокатило как выше с IE  Что еще надо поменять в коде кроме пути ?

Выделить код

Код:

var path = "C:\\Program Files (Oleg)\\Opera Portable\\launcher.exe";   

var uri = gBrowser.currentURI.spec;
var uri = /.рф/.test(uri) ? Services.io.newURI(uri, null, null).asciiSpec : uri;  
var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
file.initWithPath(path);
!file.exists() && custombuttons.alertSlide(self.label, "Файл не существует");
var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init(file);
process.run(false, [uri], 1);

Отсутствует

 

№24Вчера 15:35:48

svin88
Участник
 
Группа: Members
Зарегистрирован: 26-07-2011
Сообщений: 13
UA: Firefox 56.0

Re: [CB]Открыть страницу в другом браузере из контекстного меню

заработало - оба варианта (в 1 варианте Andrey_Krropotkin сам напутал)
Благодарю за ответы bunda1 и Andrey_Krropotkin !

Отсутствует

 

№25Вчера 21:13:59

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

Re: [CB]Открыть страницу в другом браузере из контекстного меню

Отсутствует

 
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Открыть страницу в другом браузере из контекстного меню

Board footer

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