Автоматически открывать контекстное меню на странице( 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 всё норм. работает.
Благодарю!  good2.gif

villa7 пишет

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

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

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

xrun1 пишет

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

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

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

В включенном состоянии кнопка должна выглядеть вот так:
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)
Благодарю!