Як встановити Google Chrome, щоб заборонити javascript викрадати меню правої кнопки миші


45

Я зневажаю веб-сайти, які викрадають праву кнопку миші через javascript. Інші браузери (наприклад, Firefox) дозволяють мені блокувати сайти від цього. Чи є у хрому такий варіант, чи це залишає мене на милість дратівливих дизайнерів веб-сайтів?

Я не хочу повністю вимкнути javascript. Я просто хочу заблокувати JavaScript від переходу на праву кнопку миші. Firefox дозволяє вам не дозволяти JavaScript робити такі конкретні речі. Я намагаюся з’ясувати, чи працює Chrome також. Я припускаю, що це не на даний момент.

Відповіді:


17

Спробуйте це розширення Chrome, воно спеціально не дозволяє веб-сайтам блокувати правою кнопкою миші.

Увімкнути правою кнопкою миші

https://chrome.google.com/webstore/detail/enable-right-click/hhojmcideegachlhfgfdhailpfhgknjm


це виглядає перспективно!
Петро

4
Дійсно, що хром вимагає розширення для цього, але він вирішує проблему. Проголосував відповідь, але все ж шукаю кращого рішення.
Дж. М. Бекер

Це спрацювало як шарм. Я готувався будувати власне прибудова. Так, для досліджень.
До

7
@Karl Morrison: Я думаю, ви, можливо, неправильно зрозуміли мою критику, я не критикував хром за відключення меню правої кнопки. Мене роздратувало, що хром не забезпечує метод вибіркового відключення функцій Javascript. Також хочу відзначити, що відключення JavaScript зробить багато сайтів нефункціональними. Firefox надає опцію Javascript "Вимкнути або замінити контекстні меню".
Дж. М. Бекер

1
@ Олександр, не працює. Тестується в Документах Google за допомогою браузера Chrome.
Pacerier

14

Натисніть, F12щоб вивести Інструменти для розробників Google Chrome і перейдіть до Consoleвкладки та запустіть команду нижче:

document.oncontextmenu=null;

Це має повернути більшу частину контекстного меню.

Він також повинен працювати для Firefox.

Звичайно, у Firefox ви можете просто Shiftнатиснути + правою кнопкою миші, щоб обійти контекстне меню JS.


7
Не працює. Тестується в Документах Google за допомогою браузера Chrome.
Pacerier

@Pacerier Я не знаю, яку магію вуду зробив Google на Документах, він не використовує oncontextmenu, і тому моє рішення не працює. Однак інший метод, про який я згадував, також повинен працювати під Chrome, використовуйте Shift + клацніть правою кнопкою миші, щоб відкрити початкове контекстне меню.
Ши Б.

Не працює для мене.
Бен Вілер

1
Щоб протидіяти коментарям "не працює" - це працює, можливо, це працює не для кожного веб-сайту, але відповідь від @ shi-b справді працює ...
Роберт Свіфт

Це буде залежати від того, до якого елемента dom доданий контекстний меню eventlistener. Часто це буде документ, але він може бути прикріплений до будь-якого елемента.
Скотт Крістоферсон

4

Я знайшов прийнятне рішення від About.com . Це невеликий закладки, який від природи потрібно натиснути, щоб змусити вимкнути цей набридливий JS. Однак я вважаю, що це краще, ніж параметр стилю Firefox, оскільки для багатьох сайтів потрібна клацання правою кнопкою миші, що контролює JS. Наприклад, Документи Google тощо ...

Принаймні, мені не потрібно витрачати ресурси, зберігаючи додаткове розширення в пам'яті. Ви можете дивитися, як хром зберігає розширення з його менеджером завдань, з грубої потрібної розширення, встановленої для перегляду.


Код є javascript:void(document.onmousedown=null);void(document.onclick=null);void(document.oncontextmenu=null). На жаль, це не працює для мене в Netflix з Google Chrome. Але chrome.google.com/webstore/detail/allow-right-click/… спрацювало .
Аарон Тома

2

Я використовую NotScripts

Редагувати:

Я перейшов на ScriptNo , який має більш детальний контроль


1
Це дозволяє вам контролювати те, що JavaScript може, а що не може робити на сторінці, чи просто блокує javascript взагалі?
Петро

Він блокує js за доменом, кожен з яких ви можете обрати, залежить від того, що ви маєте на увазі під викраденням правої клавіші, ви маєте на увазі, що це змінює ваше контекстне меню?
Моаб

3
так. Я хочу, щоб можливість зупинити javascript від використання подій клацання миші, які надходять із правої кнопки миші.
Петро

Ще одне рішення non grata, але великий крок над повністю відключеним JS. Я використовував FireFox носкрипт, який досі навряд чи можна використовувати, але Chrome Notscripts насправді ще гірший. Вони обидва вимагають вручну втручання, і в основному просто включають / відключають JS повністю за домен. Якщо ви хочете вирішити проблему, дрібнозернистого відключення JS DOM, обох недостатньо. Хоча за шкірою зубів, це просто досить добре, щоб уникнути мого зниження.
Дж. М. Бекер

@TechZilla перевірити мою редакцію вище
Moab

0

Цей буклет працює на сервісах Google / Youtube станом на серпень 2019 року (тестується в Chrome та Firefox):

javascript: function enableContextMenu(aggressive = false) { void(document.ondragstart=null); void(document.onselectstart=null); void(document.onclick=null); void(document.onmousedown=null); void(document.onmouseup=null); void(document.body.oncontextmenu=null); enableRightClickLight(document); if (aggressive) { enableRightClick(document); removeContextMenuOnAll("body"); removeContextMenuOnAll("img"); removeContextMenuOnAll("td"); } } function removeContextMenuOnAll(tagName) { var elements = document.getElementsByTagName(tagName); for (var i = 0; i < elements.length; i++) { enableRightClick(elements[i]); } } function enableRightClickLight(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); } function enableRightClick(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); el.addEventListener("dragstart", bringBackDefault, true); el.addEventListener("selectstart", bringBackDefault, true); el.addEventListener("click", bringBackDefault, true); el.addEventListener("mousedown", bringBackDefault, true); el.addEventListener("mouseup", bringBackDefault, true); } function restoreRightClick(el) { el || (el = document); el.removeEventListener("contextmenu", bringBackDefault, true); el.removeEventListener("dragstart", bringBackDefault, true); el.removeEventListener("selectstart", bringBackDefault, true); el.removeEventListener("click", bringBackDefault, true); el.removeEventListener("mousedown", bringBackDefault, true); el.removeEventListener("mouseup", bringBackDefault, true); } function bringBackDefault(event) { event.returnValue = true; (typeof event.stopPropagation === 'function') && event.stopPropagation(); (typeof event.cancelBubble === 'function') && event.cancelBubble(); } enableContextMenu();

Для більш небезпечних сайтів встановіть / переведіть агресивно на істинне (це відключить більшість обробників подій і, отже, відключить взаємодію зі сторінкою):

javascript: function enableContextMenu(aggressive = true) { void(document.ondragstart=null); void(document.onselectstart=null); void(document.onclick=null); void(document.onmousedown=null); void(document.onmouseup=null); void(document.body.oncontextmenu=null); enableRightClickLight(document); if (aggressive) { enableRightClick(document); removeContextMenuOnAll("body"); removeContextMenuOnAll("img"); removeContextMenuOnAll("td"); } } function removeContextMenuOnAll(tagName) { var elements = document.getElementsByTagName(tagName); for (var i = 0; i < elements.length; i++) { enableRightClick(elements[i]); } } function enableRightClickLight(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); } function enableRightClick(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); el.addEventListener("dragstart", bringBackDefault, true); el.addEventListener("selectstart", bringBackDefault, true); el.addEventListener("click", bringBackDefault, true); el.addEventListener("mousedown", bringBackDefault, true); el.addEventListener("mouseup", bringBackDefault, true); } function restoreRightClick(el) { el || (el = document); el.removeEventListener("contextmenu", bringBackDefault, true); el.removeEventListener("dragstart", bringBackDefault, true); el.removeEventListener("selectstart", bringBackDefault, true); el.removeEventListener("click", bringBackDefault, true); el.removeEventListener("mousedown", bringBackDefault, true); el.removeEventListener("mouseup", bringBackDefault, true); } function bringBackDefault(event) { event.returnValue = true; (typeof event.stopPropagation === 'function') && event.stopPropagation(); (typeof event.cancelBubble === 'function') && event.cancelBubble(); } enableContextMenu();

-1

Ви можете легко включити / відключити або дозволити / заблокувати JavaScript на будь-якому веб-сайті в Google Chrome. Просто натисніть на паперовий знак перед URL-адресою сайту. Під дозволом ви побачите javescript, клацніть стрілку вниз, ви побачите меню, виберіть "Завжди блокувати на цьому сайті" та перезавантажте веб-сторінку, щоб зміни набули чинності.

Сподіваюсь, це допоможе.

Ось посилання на зображення.

https://www.facebook.com/photo.php?fbid=10201389704683447&l=5294c0075e


2
Я не намагаюся блокувати всі JavaScript. Я хочу лише заблокувати javascript від перехоплення кліків правою мишкою. Деякі браузери надають вам таку можливість.
Пітер

-1

Я знайшов це хромоване розширення RightToCopy

це дозволяє правою кнопкою миші та вибору та копіювання текстової функції з сайтів.


-1

Спираючись на рішення Ши Б. Я отримав надійний спосіб вирішити проблему в Google Chrome.

(1) Отримайте спеціальний плагін для JavaScript для веб- переглядача Chrome.

(2) Вставте document.oncontextmenu=null;в консоль плагіна.

Працює як шарм.


(Я знаю, що це старе, але мені дуже цікаво, щоб це було) Чому б у світі ви використовували це замість консолі за замовчуванням для цього? Для мене це просто схоже на більш складний спосіб досягти точно такого ж.
Денніс Крьогер

1
у моєму випадку я повертався на той самий веб-сайт (Dropbox Paper). Тож цей сценарій автоматично виконувався для одного веб-сайту. На щастя, компанія виправила це
Karolis

document.oncontextmenu=null;не працює на sheet.google.com у хромі.
xaxxon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.