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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№1170105-05-2017 11:29:09

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 242

Re: Custom Buttons

bunda1
Спасибо.

Отсутствует

 

№1170205-05-2017 20:48:05

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

Re: Custom Buttons

На последних версиях Firefox в некоторых кнопках перестала работать блокировка контекстного меню по ПКМ. Это можно исправить если положить в вкладку инициализации кнопки строку:

Выделить код

Код:

this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };

Контекстное меню кнопки будет открываться по Ctrl + ПКМ.

Отсутствует

 

№1170306-05-2017 15:30:40

bezuma
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 26-01-2014
Сообщений: 153
UA: Firefox 53.0

Re: Custom Buttons

Перестала работать кнопка Открывать всё в новых вкладках, от 16.12.2013 (после обновы до 53.0.2)

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

Выделить код

Код:

// Открывать всё в новых вкладках, от 16.12.2013. ......................................
(function () {
   // открывать всё из ниже перечисленного в новых вкладках, если пустая страница открывать в текущей ....
   const where = whereToOpenLink;
   eval("whereToOpenLink = " + where.toString()
   .replace('return "current";\n}', (function() {
      switch ( e.originalTarget.id ) {
        case "bookmarksMenuPopup":
        case "goPopup":
        case "appmenu_bookmarksPopup":
        case "appmenu_historyMenupopup":
        case "personal-bookmarks":
        case "bookmarks-menu-button":
        case "historymenu_history":
        case "home-button":
        case "page-proxy-stack":
        case "go-button":
        case "urlbar-go-button":
        case "PopupAutoCompleteRichResult":
        case "searchbar":
        case "PopupAutoComplete":
        return "tab";
        
        default: return "current";  
      }
   }).toString().replace(/^.*{|}$/g, "")+"}"));
     
   // открывать закладки и историю в новых вкладках, если букмарклети или пустая страница в текущей ....
   const openNode = PlacesUIUtils._openNodeIn;
   eval("PlacesUIUtils._openNodeIn = " + openNode.toString().replace(') {', '){\n if (["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) aWhere = "current";\n aWhere = (aWhere == "tab" || aNode.uri.startsWith("javascript:") ) ? "current" : "tab";\n')
   );

   // если JavaScript ссылка или пустая страница открывать в текущей ....
   const linkIn = openLinkIn;
   eval("openLinkIn = " + linkIn.toString().replace(';', ';;\n if ( url.startsWith("javascript:") ) where = "current";\n if (["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) where = "current";')
   );


   
   // удалять изменения из внутренних функций Firefox ....
   addDestructor(function() {
      eval("whereToOpenLink = " + where);
      eval("PlacesUIUtils._openNodeIn = " + openNode);
      eval("openLinkIn = " + linkIn);
      eval("gURLBar.handleCommand = " + handle);
   });
   
})();


Я в шоке :(

Отсутствует

 

№1170410-05-2017 07:34:01

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

Re: Custom Buttons

bunda1
Я немного запутался... что ставит, а что удалять. :)
1. custom_buttons-0.0.5.8.9-fixed2-signed.xpi
2. custom_buttons-0.0.5.8.9-fixed2.xpi
3. И старое расширение Custom Buttons 0.0.5.8.9.xpi
Что с ними делать?

Отредактировано Indomito (10-05-2017 07:43:18)


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

Отсутствует

 

№1170510-05-2017 08:06:41

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1086
UA: Seamonkey 2.40

Re: Custom Buttons

Indomito пишет:

Я немного запутался... что ставит, а что удалять. :)
1. custom_buttons-0.0.5.8.9-fixed2-signed.xpi
2. custom_buttons-0.0.5.8.9-fixed2.xpi
3. И старое расширение Custom Buttons 0.0.5.8.9.xpi

custom_buttons-0.0.5.8.9-fixed4-signed.xpi :)

Indomito пишет:

Что с ними делать?

Пользоваться.

Отредактировано yup (10-05-2017 08:07:48)

Отсутствует

 

№1170610-05-2017 08:10:55

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

Re: Custom Buttons

Ясно... фиксим на ходу. ;)
А размер кнопок у меня был 32x32 pix, а сейчас такие мелкие что и не видно - это лечится?


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

Отсутствует

 

№1170710-05-2017 08:54:05

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1086
UA: Seamonkey 2.40

Re: Custom Buttons

Indomito пишет:

Ясно... фиксим на ходу.

Ну, как на ходу... Два месяца уже этой версии. С тех пор - "потребности в колбасе изменениях нет" :)

Indomito пишет:

А размер кнопок у меня был 32x32 pix, а сейчас такие мелкие что и не видно - это лечится?

За 53-ю версию не скажу (она под XP не запускается), а в 52-й кнопки такие же, как и раньше.
Может, причина - в каких-то установленных самодельных стилях?

Отредактировано yup (10-05-2017 08:55:54)

Отсутствует

 

№1170810-05-2017 09:06:06

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

Re: Custom Buttons

yup пишет:

Может, причина - в каких-то установленных самодельных стилях?

Нет, т.е. стиль старый, т.е. давно стоит Grey он размеры кнопок не трогает, правда есть Classic Theme Restore ибо пропали доп. панели.
Видимо надо править пользовательский CSS, но как не знаю, т.е. не знаю что писать.
P.S. На другом компе вообще дефолтная тема и ничего нет, а кнопки все мелкие - видимо где то я их зацепил, но чем не знаю.


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

Отсутствует

 

№1170911-05-2017 11:56:27

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

Re: Custom Buttons

Indomito пишет:

yup пишет:

Может, причина - в каких-то установленных самодельных стилях?

Нет, т.е. стиль старый, т.е. давно стоит Grey он размеры кнопок не трогает, правда есть Classic Theme Restore ибо пропали доп. панели.
Видимо надо править пользовательский CSS, но как не знаю, т.е. не знаю что писать.
P.S. На другом компе вообще дефолтная тема и ничего нет, а кнопки все мелкие - видимо где то я их зацепил, но чем не знаю.

Без картинки не совсем понятно.
Больших (24х24) иконок давно нет, их Classic Theme Restorer должен  возвращать. Сейчас по умолчанию 18х18.
И можно потыкать кнопкой и/или DOM Inspector'ом.
По-видимому, нужен стиль для userChrome.css типа вот такого:

Выделить код

Код:

toolbarbutton[id^="custombuttons-button"] > .toolbarbutton-icon {
    min-width: 24px !important;
    min-height: 24px !important;
}

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

Отсутствует

 

№1171012-05-2017 01:16:45

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

Re: Custom Buttons

Infocatcher
Да, у меня кнопки 18x18 pix, т.е. такой код. 

userChrome.css пишет:

Выделить код

Код:

toolbarbutton[id^="custombuttons-button"] > .toolbarbutton-icon {
    min-width: 18px !important;
    min-height: 18px !important;
}

А для боковой панели это сработает?

Поставлю custom_buttons-0.0.5.8.9-fixed4-signed.xpi и попробую обновить FF.

Правда отваливаются две кнопки.

RestartHideQuit

Выделить код

Код:

/*Initialization Code*/

this.tooltipText = 
"Left            ―   Перезагрузить Mozilla FireFox\n" +
"DLeft            ―   None\n" +
"Right         ―   Выйти из Mozilla FireFox";

var delay = 1200; // Задержка для Long Right
this.onmousedown = function(event) {this._mouseDownTime = Date.now();};


//Перезагрузить Mozilla FireFox
this.leftclick = function(event) {
    Application.restart();  
};


//Выйти из Mozilla FireFox
this.rightclick = function(event) {
  if ((Date.now() - this._mouseDownTime) > delay)
     {
       gShowPopup(this);
       return;
     }
  if(!event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
    event.preventDefault();
        event.stopPropagation();
        Application.quit();
        }
};

//Свернуть Mozilla FireFox
//this.leftDclick = function(event) {
    //minimize();
//};

//Резерв
//this.rightDclick = function(event) {
    //return;
//};


this.setAttribute('onclick', 'custombuttons.gQuot.mHandler(event, this)');
this.setAttribute('ondblclick', 'custombuttons.gQuot.mHandler(event, this)');


и
Page Navigation

Выделить код

Код:

/*Initialization code*/

//Автор Indomito ver 12.5 bild of 12.01.2016

var IncDecPage = 1; //Только целое число!!!
//var delay = 1200; // Задержка для Long Right
//this.onmousedown = function(event) {this._mouseDownTime = Date.now();};

this.tooltipText = 
"Left/Right    ―   Вниз/Вверх по странице\n" + 
"DLeft            ―   В начало/конец страницы\n" +
"Middle         ―   Центрирование страницы";


this.__defineGetter__("scroller", function() {
    var doc = content.document;
    var root = doc.documentElement;
    var body = doc.body || root;
    return body.scrollHeight > root.scrollHeight ? body : root;
});

//Вниз по странице
this.leftclick = function(event) {
    var scroller = this.scroller;
    content.scrollByPages(IncDecPage)   
};

//Центрирование страницы
this.midclick = function(event) {
    var scroller = this.scroller;
    content.scrollTo(0, (scroller.scrollHeight - scroller.clientHeight)/2);
};

//Вверх по странице
this.rightclick = function(event) {
//  if ((Date.now() - this._mouseDownTime) > delay)
//     {
//       return;
//     }
  var scroller = this.scroller;
  if(!event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        content.scrollByPages(-IncDecPage);
     }
};

this.rightDclick = function(event) {
    //var scroller = this.scroller;
    //content.scrollTo(0, (scroller.scrollHeight - scroller.clientHeight)/2);
};


//В начало/конец страницы
this.leftDclick = function(event) {
    var scroller = this.scroller;
    if(scroller.scrollTop > (scroller.scrollHeight - scroller.clientHeight)/2)
      content.scrollTo(scroller.scrollHeight,  0);
    else
        content.scrollTo(0, scroller.scrollHeight);
};

this.setAttribute('onclick', 'custombuttons.gQuot.mHandler(event, this)');
this.setAttribute('ondblclick', 'custombuttons.gQuot.mHandler(event, this)');


Что в них не так?

Отредактировано Indomito (12-05-2017 01:18:05)


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

Отсутствует

 

№1171112-05-2017 10:41:01

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

Re: Custom Buttons

Indomito пишет:

Правда отваливаются две кнопки.
RestartHideQuit

Выделить код

Код:

/*Initialization Code*/

this.tooltipText = 
"Left            ―   Перезагрузить Mozilla FireFox\n" +
"DLeft            ―   None\n" +
"Right         ―   Выйти из Mozilla FireFox";

var delay = 1200; // Задержка для Long Right
this.onmousedown = function(event) {this._mouseDownTime = Date.now();};


//Перезагрузить Mozilla FireFox
this.leftclick = function(event) {
    Application.restart();  
};


//Выйти из Mozilla FireFox
this.rightclick = function(event) {
  if ((Date.now() - this._mouseDownTime) > delay)
     {
       gShowPopup(this);
       return;
     }
  if(!event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
    event.preventDefault();
        event.stopPropagation();
        Application.quit();
        }
};

//Свернуть Mozilla FireFox
//this.leftDclick = function(event) {
    //minimize();
//};

//Резерв
//this.rightDclick = function(event) {
    //return;
//};


this.setAttribute('onclick', 'custombuttons.gQuot.mHandler(event, this)');
this.setAttribute('ondblclick', 'custombuttons.gQuot.mHandler(event, this)');

А эсли так:

Выделить код

Код:

this.onclick =e=> {
   
   if ( e.button == 0 )
        Services.startup.quit(Services.startup.eAttemptQuit | Services.startup.eRestart);
          
   if ( e.button == 1 )
        gShowPopup(self);
     
   if ( e.button == 2 && !e.ctrlKey ) 
        goQuitApplication();
};
this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };


this.tooltipText = "Л: Перезагрузить \nС: CB Меню \nП: Выйти";

Отсутствует

 

№1171212-05-2017 21:48:42

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 242
UA: Firefox 53.0

Re: Custom Buttons

Подскажите,как в код добавить второй плеер?

Выделить код

Код:

/*Initialization Code*/
var path = "D:\\PortableSoft\\Total Commander Extended\\Program\\Players\\smplayer-portable-17.4.0.0\\smplayer.exe";


this.onclick =e=> {
   if ( e.button == 0 )
        play(content.location.href, "");

   if ( e.button == 1 ) gShowPopup(self); 
    
   if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
        e.preventDefault();  
        play(content.location.href, "/add");           
        }
};


self.image = "moz-icon://file://" + path;
var playerName = path.split("\\").pop().replace(".exe","");
self.label = "Открыть видео в " + playerName;


var contextMenu = document.getElementById("contentAreaContextMenu"); 
var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), document.getElementById("context-sep-open"));
menuitem.setAttribute("label", "Открыть в " + playerName);      
menuitem.setAttribute("class", "menuitem-iconic");
menuitem.setAttribute("image", "moz-icon://file://" + path); 
menuitem.onclick =e=> play(gContextMenu.getLinkURL(), e.button ? "/add" : "");
addEventListener("popupshowing", ()=> {
   var youtube = gBrowser.contentDocument.location.host == "www.youtube.com";
   menuitem.hidden = !gContextMenu.onLink || !youtube;
}, false, contextMenu);
addDestructor(()=> menuitem.remove() );

    
function play(link, param) {
   var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
   var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   file.initWithPath(path);
   process.init(file);
   process.run(false, [link, param], 2);
};


self.tooltipText = "Л: Открыть видео в " + playerName + "\nС: CB Меню \nП: Добавить видео в плейлист " + playerName;

Отсутствует

 

№1171312-05-2017 22:18:34

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

Re: Custom Buttons

Rag
Своё добавляете.

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

Выделить код

Код:

//Открыть в программах...

if ( this.hasAttribute("initialized") ) return;


Open("SMPlayer", "C:\\Program Files\\SMPlayer\\smplayer.exe", [""]);
Open("VLCPlayer", "C:\\Program Files\\VideoLAN\\VLC\\vlc.exe", [""]);
Open("POTPlayer", "C:\\Program Files\\DAUM\\PotPlayer\\PotPlayerMini.exe", [""]);
Open("ACEPlayer", "C:\\Documents and Settings\\Admin\\Application Data\\ACEStream\\player\\ace_player.exe", [""]);



//----------------------------------------------------------------------------------------------
function Open(name, prog, param, image){
   var menuitem = document.createElement("menuitem");
   var contextMenu = document.getElementById("contentAreaContextMenu");
   menuitem.id = "open-in";
   menuitem.setAttribute("label", name);
   //menuitem.setAttribute("class", "menuitem-iconic");
   //menuitem.setAttribute("image", image);
   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);
      file.initWithPath(prog);
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      process.init(file);
      if (!gContextMenu.onLink) {process.run(false, [param, content.location.href], 2);}
      else {process.run(false, [param, gContextMenu.getLinkURL()], 2);};}, false, menuitem );};


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

Отсутствует

 

№1171412-05-2017 22:45:48

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 242
UA: Firefox 53.0

Re: Custom Buttons

villa7
Спасибо за помощь.Но я этой кнопкой пользовался какоето время и она меня не устроила тем что плееры отображаются в контекстном меню на любом сайте.А в кнопке которую я хочу изменить плеер появляется в меню только на сайте с видео.

Оппа.Извиняюсь поспешил.Лажанулся.http://arcanumclub.ru/smiles/smile44.gifПлеера появляются на сайте с видео.Я не знаю что записать в конце адреса  [""] так что подсобите.


Разобрался сам.Большое спасибо за помощь.

Отредактировано Rag (13-05-2017 00:35:35)

Отсутствует

 

№1171513-05-2017 01:23:08

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 242
UA: Firefox 53.0

Re: Custom Buttons

villa7
Как бы в код который вы мне давеча предоставили,прописать иконки?https://lh6.ggpht.com/-BPqO8QcVT8c/VE0D6nMiIyI/AAAAAAAAaFU/iZ6s_YMuino/s0/shuffle.gif
Было бы отлично.Подскажите пожалуйста.

Отсутствует

 

№1171613-05-2017 01:59:44

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1086
UA: Seamonkey 2.40

Re: Custom Buttons

Rag
Судя по коду, кнопка должна добавлять пункт в контекстное меню на видео с www.youtube.com. Но у меня в FF 52 этот пункт не добавляется (хотя нажатие на саму кнопку ролик во внешнем проигрывателе запускает). Поэтому предлагаю модификацию исходной кнопки, сделанную вслепую:

Выделить код

Код:

/*Initialization Code*/
var path = "D:\\PortableSoft\\Total Commander Extended\\Program\\Players\\smplayer-portable-17.4.0.0\\smplayer.exe";
var path2 = "D:\\PathToPlayer2\\player2.exe";

this.onclick = e => {
  if (e.button == 0) play(content.location.href, "");
  if (e.button == 1) gShowPopup(self);
  if (e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey) {
    e.preventDefault();
    play(content.location.href, "/add");
  }
};

self.image = "moz-icon://file://" + path;
var playerName = path.split("\\").pop().replace(".exe","");
var playerName2 = path2.split("\\").pop().replace(".exe","");
self.label = "Открыть видео в " + playerName;

var contextMenu = document.getElementById("contentAreaContextMenu");
var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), document.getElementById("context-sep-open"));
var menuitem2 = contextMenu.insertBefore(document.createElement("menuitem"), document.getElementById("context-sep-open"));

menuitem.setAttribute("label", "Открыть в " + playerName);
menuitem.setAttribute("class", "menuitem-iconic");
menuitem.setAttribute("image", "moz-icon://file://" + path);

menuitem2.setAttribute("label", "Открыть в " + playerName2);
menuitem2.setAttribute("class", "menuitem-iconic");
menuitem2.setAttribute("image", "moz-icon://file://" + path2);

menuitem.onclick = e => play(gContextMenu.getLinkURL(), path, e.button ? "/add" : "");
menuitem2.onclick = e => play(gContextMenu.getLinkURL(), path2, e.button ? "/add" : ""); // вместо 'e.button ? "/add" : ""' должно быть то, что нужно второму проигрывателю

addEventListener("popupshowing", () => {
  var youtube = gBrowser.contentDocument.location.host == "www.youtube.com";
  menuitem.hidden = menuitem2.hidden = !gContextMenu.onLink || !youtube;
}, false, contextMenu);
addDestructor(() => { menuitem.remove(); menuitem2.remove() });

function play(link, path, param) {
  var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
  var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
  file.initWithPath(path);
  process.init(file);
  process.run(false, [link, param], 2);
};

self.tooltipText = "Л: Открыть видео в " + playerName + "\nС: CB Меню \nП: Добавить видео в плейлист " + playerName;

Добавлено 13-05-2017 02:08:54

Rag пишет:

Как бы в код который вы мне давеча предоставили,прописать иконки?

Строчку

Выделить код

Код:

//menuitem.setAttribute("image", image);

заменить на

Выделить код

Код:

menuitem.setAttribute("image", "moz-icon://file://" + prog);

Отредактировано yup (13-05-2017 02:08:54)

Отсутствует

 

№1171713-05-2017 02:33:23

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 242
UA: Firefox 53.0

Re: Custom Buttons

yup

Всё отлично!Всё работает и иконки появились и оба кода работают.Только теперь дилема какую кнопку выбрать.Я теперича в двойне счастливейшем стал. http://www.kolobok.us/smiles/icq/biggrin.gif

Отсутствует

 

№1171813-05-2017 02:42:11

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1086
UA: Seamonkey 2.40

Re: Custom Buttons

Rag пишет:

Только теперь дилема какую кнопку выбрать.

У того кода, который Вы просили переделать, чуть бОльшая функциональность (по одной кнопке мыши сразу проигрывает, по другой - ставит в очередь на воспроизведение) и искусственная привязка к конкретному сайту ("www.youtube.com"), которую легко убрать. В остальном обе кнопки можно считать идентичными.

Отсутствует

 

№1171913-05-2017 02:58:01

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 242
UA: Firefox 53.0

Re: Custom Buttons

yup
Всёж таки в кнопке которую дал villa7 есть один недочёт.При выделении любого слова на странице и нажав пкм в меню появляются плеера.Хоть страничка не ютубовская.Это только при выделении.
Да ещё и не на каждом выделеном слове.

Отредактировано Rag (13-05-2017 03:04:40)

Отсутствует

 

№1172013-05-2017 03:26:28

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1086
UA: Seamonkey 2.40

Re: Custom Buttons

Rag пишет:

Всёж таки в кнопке которую дал villa7 есть один недочёт.При выделении любого слова на странице и нажав пкм в меню появляются плеера.

Странно это. В обеих кнопках код, который решает, в каком меню должны появляться доп.пункты, а в каком нет, один и тот же:

Выделить код

Код:

menuitem.hidden = !gContextMenu.onLink

Если контекстное меню вызвали на ссылке, то пункты видны. Если не на ссылке - спрятаны.

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

Отсутствует

 

№1172113-05-2017 03:39:21

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 242
UA: Firefox 53.0

Re: Custom Buttons

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

Отсутствует

 

№1172213-05-2017 04:07:33

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1086
UA: Seamonkey 2.40

Re: Custom Buttons

Rag пишет:

Выделяю ваш ник пкм - в меню два плеера.Выделяю ниже слово участник пкм - плееров нет.

Логично. "Участник" - просто текст, а "yup" над ним - ссылка. На ссылке пункты с проигрывателями показываются.
А в первой кнопке ещё одна проверка делается: пункты добавляются только для ссылок на сайте www.youtube.com - вот и вся разница.
Эту проверку элементарно просто как убрать из первой кнопки, так и добавить во вторую.

Отредактировано yup (13-05-2017 04:08:40)

Отсутствует

 

№1172313-05-2017 04:27:10

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 242
UA: Firefox 53.0

Re: Custom Buttons

yup
А,ну и ладушки.Спасибо за разъяснение.

Отсутствует

 

№1172414-05-2017 10:40:01

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 242
UA: Firefox 53.0

Re: Custom Buttons

Уважаемые знатоки скриптов,кодов и всего что связано с Firefox.
В Palemoon после каждой перезагрузки слетает проверка орфографии.Для предотвращения этого использую кнопку.

Выделить код

Код:

//Проверка арфографии
addEventListener('focus', function(e){
   if( e.target.tagName.toLowerCase()=='textarea'|| e.target.tagName.toLowerCase()=='input')
       e.target.setAttribute('spellcheck', 'true')
 }, content.document.body);
 

Нормально работает,но в консоли ошибок,масса записей
TypeError: e.target.tagName is undefined
chrome://custombuttons-context/content/button.js?windowId=Firefox&id=custombuttons-button21@init line 1 > Function
Посоветуйте,как с этим боротся?И вообще стоит ли обращать внимания на это?А может у кого есть действенный метод,как же всё таки заставить Palemoon не сбрасывать галочку проверки орфографии.

Отсутствует

 

№1172514-05-2017 11:40:43

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1086
UA: Seamonkey 2.40

Re: Custom Buttons

Rag пишет:

Нормально работает,но в консоли ошибок,масса записей
TypeError: e.target.tagName is undefined

Не у всех получателей события есть атрибут tagName.

Rag пишет:

Посоветуйте,как с этим боротся?

Добавить в код проверку его наличия. Например, так:

Выделить код

Код:

  if (e.target.tagName && (e.target.tagName.toLowerCase() == 'textarea'|| e.target.tagName.toLowerCase() == 'input'))

Добавлено 14-05-2017 11:42:29
https://developer.mozilla.org/ru/docs/W … nt/tagName уверяет, что tagName всегда содержит имя тега большими буквами, так что вызов toLowerCase() является излишним.

Выделить код

Код:

if (e.target.tagName && (e.target.tagName == 'TEXTAREA'|| e.target.tagName == 'INPUT'))

Отредактировано yup (14-05-2017 11:51:01)

Отсутствует

 

Board footer

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