Автоматически открывать контекстное меню на странице( Firefox 24-48 )
Автор: bunda1
Версия: от 18.08.2016.
Описание: кнопка автоматически открывает контекстное меню на странице при выделении текста, ссылки и других элементов на странице.

Клики на кнопке:
ЛКМ => Выключить или включить авто открывание контекстное меню.

Код кнопки:

Выделить код

Код:

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%u0410%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA/0lEQVQ4jZ3QzWrCQBQF4DyUwWA0xTBICAMSJNQKEpCABCHFKgNh/AlNcJiCD9DXmBc8XUh7F+3m9sLZ3MXH4XgAcP+4/8QaC2ssbr1B/96jazu05xYXfYFuNBrVQB0VDvsDAMD7BrhX72o45x6ANfbx9bzf+fwjAKptRcCtN2yg3JQEdG3HBop1QcD1dGVvsFquCNCNZjfIFzkB6qjYQDbPCNi/vrEBmUoC6l3N3iCZJQRU24rdQMSCgHJTsoFoEhFQrAs2EI5CApbPL+wNgmFAQL7Ikc0zyFRCphLJLIGIBUQsMH2aIppEGIdjhKMQwTCAP/DhD3wCAMA59698AWIK50BNkg5CAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20cbu.setPrefs%28s%2C%20%21cbu.getPrefs%28s%29%29%3B%0A%0Avar%20s%20%3D%20%27CB.autoContextMenu%27%3B%0Acbu.isPref%28s%2C%20true%29%3B%0A%0AtoggleImage%28%29%3B%0Afunction%20toggleImage%28%29%20setTimeout%28%28%29%3D%3E%20self.checked%20%3D%20cbu.getPrefs%28s%29%2C%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%0Afunction%20autoContextMenu%28e%29%20%7B%0A%20%20%20if%20%28%0A%20%20%20%20%20%20%20e.button%0A%20%20%20%20%20%20%20%7C%7C%20%21cbu.getPrefs%28s%29%0A%20%20%20%20%20%20%20%7C%7C%20gBrowser.currentURI.spec.startsWith%28%22about%3Astylish-edit%22%29%0A%20%20%20%20%20%20%20%7C%7C%20document.commandDispatcher.focusedWindow.getSelection%28%29.isCollapsed%0A%20%20%20%20%20%20%29%20return%3B%0A%20%20%20%20%0A%20%20%20var%20mouseEvent%20%3D%20document.createEvent%28%27MouseEvents%27%29%3B%0A%20%20%20mouseEvent.initMouseEvent%28%27contextmenu%27%2C%201%2C%201%2C%20window%2C%201%2C%20e.screenX%2C%20e.screenY%2C%20e.clientX%2C%20e.clientY%2C%200%2C%200%2C%200%2C%200%2C%202%2C%20null%29%3B%0A%20%20%20e.target.dispatchEvent%28mouseEvent%29%3B%0A%7D%3B%0AaddEventListener%28%27mouseup%27%2C%20autoContextMenu%2C%20false%2C%20gBrowser%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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

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

Выделить код

Код:

this._handleClick =()=> cbu.setPrefs(s, !cbu.getPrefs(s));

var s = 'CB.autoContextMenu';
cbu.isPref(s, true);

toggleImage();
function toggleImage() setTimeout(()=> self.checked = cbu.getPrefs(s), 0);           
gPrefService.addObserver(s, toggleImage, false);
addDestructor(()=> gPrefService.removeObserver(s, toggleImage) );

function autoContextMenu(e) {
   if (
       e.button
       || !cbu.getPrefs(s)
       || gBrowser.currentURI.spec.startsWith("about:stylish-edit")
       || document.commandDispatcher.focusedWindow.getSelection().isCollapsed
      ) return;
    
   var mouseEvent = document.createEvent('MouseEvents');
   mouseEvent.initMouseEvent('contextmenu', 1, 1, window, 1, e.screenX, e.screenY, e.clientX, e.clientY, 0, 0, 0, 0, 2, null);
   e.target.dispatchEvent(mouseEvent);
};
addEventListener('mouseup', autoContextMenu, false, gBrowser);

Установка кнопки: устанавливаем расширение Сustom Buttons, копируем в адресную строку браузера код кнопки и жмём перейти в адресной строке. Откроется окно диалога добавления кнопки, нажимаем Ok, потом откроется сообщение о успешном создании кнопки, опять нажимаем Ok. Потом открываем настройку панелей инструментов, перетаскиваем кнопку в нужное место на панели и начинаем пользоваться кнопкой.

Вот честно, никогда не понимал логики, ведь если человек выделяет что то на странице, значит с этим нужно что то дальше делать, то бишь вызывать контекстное меню по ПКМ, так почему бы не сразу по выделению? Лет 5 пользовался скриптом, недавно перешёл на твою кнопку, тем более что её можно быстро отключить когда вдруг необходимо. А когда привыкнешь к автомату, то без этого как то уже не уютно. Спасибо за кнопку!

Ыыыы.. Класс! не хватало этой штуки-палезняшки. WXP PaleMoon-x86 всё норм. работает.
Благодарю!  http://www.kolobok.us/smiles/big_standart/good2.gif

villa7 пишет:

Вот честно, никогда не понимал логики, ведь если человек выделяет что то на странице, значит с этим нужно что то дальше делать, то бишь вызывать контекстное меню по ПКМ, так почему бы не сразу по выделению?

Выделенное можно перетаскивать, копировать с клавиатуры или вовсе помечать так позицию, где читаешь. :D
Но это все так, дело вкуса, конечно. :)

А кнопка у меня не работает. Проверял также и на чистом профиле.
[firefox] 44, Custom Buttons 0.0.5.8.1, пролеченный отсюда.

xrun1 пишет:

А кнопка у меня не работает. Проверял также и на чистом профиле.
[firefox] 44, Custom Buttons 0.0.5.8.1, пролеченный отсюда.

А на ком панели ты разместил кнопку?

bunda1
Да, вытащил на панель. Я так понимаю, кнопка должна менять яркость при вкл/выкл. У меня при нажатии на кнопку ничего не происходит.

В включенном состоянии кнопка должна выглядеть вот так:
http://i76.fastpic.ru/big/2016/0129/d5/45902ecb500c53531c99a5801e0ca5d5.png

bunda1
Кнопка работает с 0.0.5.9pre1-20140622.zip и не работает с 0.0.5.8-tb+fx+sm.zip отсюда. Проверял на чистом профиле.

На 48 лисе кнопка не работает как надо, после перезагрузки браузера она опять не активна. На 45 нет таких проблем посмотрите пожалуйста.

broker пишет:

На 48 лисе кнопка не работает как надо, после перезагрузки браузера она опять не активна. На 45 нет таких проблем посмотрите пожалуйста.

Вроде исправил Автоматически открывать контекстное меню на странице

bunda1
Работает :music: спасибо.

Вещь!
Заменил отвалившийся selectionSK. ([firefox]52)
Благодарю!