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

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Открыть страницу в другом браузере из контекстного меню

№104-12-2015 19:50:19

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

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

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

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

Выделить код

Код:

// Открыть страницу в другом браузере из контекстного меню, от 02.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 = savepage.hidden, true, 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);
      process.run(false, [url], 1);
   };

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

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

Отсутствует

 

№205-12-2015 03:11:31

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

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

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


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

Отсутствует

 

№305-12-2015 11:35:48

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

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

difabor пишет:

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

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

Отсутствует

 

№424-12-2016 12:46:16

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

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

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

Отсутствует

 

№527-12-2016 19:44:38

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
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
Сообщений: 35
UA: unknown 0.0

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

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

Отсутствует

 

№728-12-2016 14:00:18

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

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

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

Отсутствует

 

№829-12-2016 10:47:35

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
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
Сообщений: 35
UA: unknown 0.0

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

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

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

Отсутствует

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

Board footer

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