Jak ustawić Google Chrome, aby nie pozwalał javascriptowi na przechwycenie mojego menu po kliknięciu prawym przyciskiem myszy

45

Nienawidzę stron internetowych, które przechwytują mój prawy przycisk myszy za pomocą javascript. Inne przeglądarki (takie jak Firefox) pozwalają mi blokować takie witryny. Czy chrome ma taką opcję, czy pozostawia mnie na łasce irytujących projektantów stron internetowych?

Nie chcę całkowicie wyłączać javascript. Chcę tylko zablokować javascript przed przejęciem mojego prawego przycisku myszy. Firefox pozwala powstrzymać javascript przed robieniem takich rzeczy. Próbuję dowiedzieć się, czy Chrome też. Zakładam, że w tym momencie tak nie jest.

Piotr
źródło

Odpowiedzi:

17

Wypróbuj to rozszerzenie do przeglądarki Chrome, ponieważ blokuje ono klikanie prawym przyciskiem myszy.

Włącz prawy przycisk myszy

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

Alexander Lai
źródło
to wygląda obiecująco!
Peter
4
To naprawdę rozczarowujące chrom wymaga rozszerzenia do tego, ale rozwiązuje problem. Zagłosowałem odpowiedź, ale wciąż szukam lepszego rozwiązania.
JM Becker
To działało jak urok. Przygotowywałem się do zbudowania własnego rozszerzenia. Tak, do badań.
Do
7
@Karl Morrison: Myślę, że mogłeś źle zrozumieć moją krytykę, nie krytykowałem Chrome za wyłączenie menu po kliknięciu prawym przyciskiem myszy. Byłem zirytowany, że chrome nie zapewnia metody selektywnego wyłączania funkcji Javascript. Chciałbym również wspomnieć, że wyłączenie JavaScript spowoduje, że wiele witryn przestanie działać. Firefox udostępnia opcję Javascript „Wyłącz lub zamień menu kontekstowe”.
JM Becker
1
@Alexander, nie działa. Testowane w Dokumentach Google przy użyciu przeglądarki Chrome.
Pacerier,
14

Naciśnij, F12aby wyświetlić Narzędzia Google Chrome dla programistów, przejdź do Consolekarty i uruchom poniższe polecenie:

document.oncontextmenu=null;

Powinno to przywrócić większość menu kontekstowego.

Powinien również działać w przeglądarce Firefox.

Oczywiście w przeglądarce Firefox można po prostu użyć Shift+ kliknięcie prawym przyciskiem myszy, aby ominąć menu kontekstowe JS.

Shi B.
źródło
7
Nie działa Testowane w Dokumentach Google przy użyciu przeglądarki Chrome.
Pacerier,
@Pacerier Nie wiem, jaką magię voodoo Google rzucił na Dokumenty, nie wykorzystuje on menu kontekstowego i dlatego moje rozwiązanie nie działa. Jednak inna metoda, o której wspomniałem, powinna również działać w Chrome, użyj Shift + kliknięcie prawym przyciskiem myszy, aby wyświetlić oryginalne menu kontekstowe.
Shi B.,
Nie działa dla mnie
Ben Wheeler,
1
Przeciwdziałanie komentarzom „nie działa” - to działa, może nie działać dla każdej strony internetowej, ale odpowiedź z @ shi-b działa ...
Robert Swift,
Będzie to zależeć od tego, do którego elementu domowego dołączono listę kontekstową listy zdarzeń. Często będzie to dokument, ale można go dołączyć do dowolnego elementu.
Scott Christopherson
4

Znalazłem akceptowalne rozwiązanie z About.com . To mała książeczka, którą z natury należy kliknąć, aby wymusić wyłączenie tej konkretnej irytującej JS. Jednak uważam, że jest to lepsze niż opcja stylu Firefox, ponieważ wiele witryn wymaga kontrolowania JS prawym przyciskiem myszy. Na przykład Dokumenty Google itp.

Przynajmniej nie muszę marnować zasobów, przechowując dodatkowe rozszerzenie w pamięci. Możesz obserwować, jak chrome przechowuje rozszerzenia za pomocą swojego menedżera zadań. Z grubsza potrzebujesz zainstalowanego rozszerzenia do oglądania.

JM Becker
źródło
Kod jest javascript:void(document.onmousedown=null);void(document.onclick=null);void(document.oncontextmenu=null). Niestety nie działa dla mnie w Netflix z Google Chrome. Ale chrome.google.com/webstore/detail/allow-right-click/… działał .
Aaron Thoma,
2

Używam NotScripts

EDYTOWAĆ:

Mam włączone do ScriptNo , która ma bardziej precyzyjną kontrolę

Moab
źródło
1
Czy to pozwala kontrolować, co javascript może, a czego nie może zrobić na stronie, czy może po prostu całkowicie blokuje javascript?
Peter
Blokuje js według domen, każda domena do wyboru przez ciebie, zależy od tego, co masz na myśli, przejmując kliknięcie prawym przyciskiem myszy, czy to znaczy, że zmienia menu kontekstowe?
Moab
3
tak. Chcę mieć możliwość powstrzymania javascript przed użyciem zdarzeń kliknięcia myszy, które pochodzą z mojego prawego przycisku myszy.
Peter
Kolejne rozwiązanie non grata, ale duży krok ponad całkowicie wyłączony JS. Użyłem nosa FireFoxa, który wciąż jest mało użyteczny, ale skrypty Chrome są nawet gorsze. Oba wymagają ręcznej interwencji i po prostu włączają / wyłączają JS całkowicie dla każdej domeny. Jeśli chcesz rozwiązać problem, polegający na precyzyjnym wyłączeniu specyficznego JS DOM, oba nie wystarczą. Chociaż przez skórę zębów, to wystarczy, aby uniknąć mojego przegłosowania.
JM Becker
@TechZilla sprawdź moją edycję powyżej
Moab
0

Ta broszura działa w witrynach Google / Youtube od sierpnia 2019 r. (Przetestowana w Chrome i 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();

W przypadku najtrudniejszych witryn ustaw / przekaż agresywnie na true (spowoduje to wyłączenie większości programów obsługi zdarzeń, a tym samym interakcję ze stroną):

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();
Chema
źródło
-1

Możesz łatwo włączyć / wyłączyć lub zezwolić / zablokować javascript na dowolnej stronie w Google Chrome. Wystarczy kliknąć papierowy znak przed adresem strony. Pod uprawnieniami zobaczysz javescript, kliknij strzałkę w dół, zobaczysz menu, wybierz „Zawsze blokuj na tej stronie” i przeładuj stronę, aby zmiany mogły zostać wprowadzone.

Mam nadzieję, że to pomoże.

Oto link do obrazu.

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

Tahir taous
źródło
2
Nie próbuję blokować całego JavaScript. Chcę tylko zablokować JavaScript przed przechwytywaniem kliknięć prawym przyciskiem myszy. Niektóre przeglądarki oferują tę opcję.
Piotra
-1

Znalazłem to chromowane rozszerzenie RightToCopy

umożliwia kliknięcie prawym przyciskiem myszy oraz wybranie i skopiowanie funkcji tekstowej z witryn.

JerryGoyal
źródło
-1

Opierając się na rozwiązaniu Shi B., uzyskałem niezawodny sposób rozwiązania problemu w Google Chrome.

(1) Pobierz niestandardową wtyczkę javascript-for-web dla Chrome.

(2) Wklej document.oncontextmenu=null;do konsoli wtyczki.

Działa jak marzenie.

Karolis
źródło
(Wiem, że to jest stare, ale jestem zbyt ciekawy, aby na to pozwolić) Dlaczego, do diabła, miałbyś używać tego zamiast domyślnej konsoli? Dla mnie wygląda to na trudniejszy sposób na osiągnięcie dokładnie tego samego.
Dennis Krøger
1
w moim przypadku wracałem na tę samą stronę internetową (Dropbox Paper). Więc automatycznie wykonał ten skrypt dla jednej witryny. Na szczęście firma to naprawiła
Karolis
document.oncontextmenu=null;nie działa na arkuszach.google.pl w chrome.
xaxxon,