Come faccio a impostare Google Chrome per non consentire a javascript di dirottare il mio menu di scelta rapida


45

Disprezzo i siti Web che dirottano il pulsante destro del mouse tramite JavaScript. Altri browser (come Firefox) mi consentono di impedire ai siti di farlo. Chrome ha una tale opzione o mi lascia in balia dei fastidiosi progettisti di siti Web?

Non voglio disattivare completamente JavaScript. Voglio solo impedire a javascript di assumere il controllo del pulsante destro del mouse. Firefox ti consente di impedire a javascript di fare cose specifiche come questa. Sto cercando di scoprire se anche Chrome lo fa. Presumo che non lo faccia a questo punto.

Risposte:


17

Prova questa estensione di Chrome, in particolare impedisce ai siti Web di bloccare il pulsante destro del mouse.

Abilita tasto destro

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


questo sembra promettente!
Peter,

4
Chrome è davvero deludente e richiede un'estensione per questo, ma risolve il problema. Risposta votata, ma ancora alla ricerca di una soluzione migliore.
JM Becker,

Questo ha funzionato come un fascino. Mi stavo preparando per costruire la mia estensione. Yay per la ricerca.
Fino al

7
@Karl Morrison: Penso che potresti aver frainteso le mie critiche, non stavo criticando Chrome per aver disabilitato il menu del tasto destro. Ero irritato che Chrome non fornisse un metodo per disabilitare selettivamente le funzioni Javascript. Vorrei anche menzionare che la disabilitazione di JavaScript renderà molti siti non funzionali. Firefox fornisce un'opzione Javascript "Disabilita o sostituisci menu contestuali".
JM Becker,

1
@Alexander, non funziona. Testato su Google Documenti utilizzando il browser Chrome.
Pacerier,

14

Premi F12per estrarre gli Strumenti per sviluppatori di Google Chrome e accedere alla Consolescheda ed eseguire il comando seguente:

document.oncontextmenu=null;

Dovrebbe riportare la maggior parte del menu di scelta rapida.

Dovrebbe funzionare anche per Firefox.

Ovviamente su Firefox puoi semplicemente usare Shift+ tasto destro per ignorare il menu contestuale di JS.


7
Non funziona Testato su Google Documenti utilizzando il browser Chrome.
Pacerier,

@Pacerier Non so quale magia voodoo ha lanciato Google su Documenti, non utilizza oncontextmenu e quindi la mia soluzione non funziona. Tuttavia, l'altro metodo che ho citato dovrebbe funzionare anche con Chrome, usare Shift + tasto destro per visualizzare il menu di scelta rapida originale.
Shi B.

Non funziona per me.
Ben Wheeler,

1
Per contrastare i commenti "non funziona" - questo funziona, potrebbe non funzionare per tutti i siti web, ma la risposta di @ shi-b funziona ...
Robert Swift

Dipenderà dall'elemento dom a cui era collegato il listener di eventi del menu di scelta rapida. Spesso sarà un documento ma potrebbe essere allegato a qualsiasi elemento.
Scott Christopherson,

4

Ho trovato una soluzione accettabile, su About.com . È un piccolo bookmarklet, che per sua natura deve essere cliccato per forzare disabilitare questo particolare fastidioso JS. Tuttavia lo trovo migliore dell'opzione di stile di Firefox, poiché molti siti necessitano del tasto destro per controllare JS. Ad esempio Google Docs ecc ...

Almeno non ho bisogno di sprecare risorse per archiviare un'estensione aggiuntiva in memoria. Puoi vedere come Chrome memorizza le estensioni con il suo task manager, di cui hai bisogno di un'estensione installata per vederla.


Il codice è javascript:void(document.onmousedown=null);void(document.onclick=null);void(document.oncontextmenu=null). Sfortunatamente non funziona per me in Netflix con Google Chrome. Ma chrome.google.com/webstore/detail/allow-right-click/… ha funzionato .
Aaron Thoma,

2

Uso NotScripts

MODIFICARE:

Sono passato a ScriptNo , che ha un controllo più granulare


1
Ti consente di controllare ciò che javascript può e non può fare su una pagina o blocca semplicemente javascript?
Peter,

Blocca js per dominio, ogni dominio selezionabile da te dipende da cosa intendi dirottando il tuo tasto destro, vuoi dire che cambia il menu contestuale?
Moab,

3
sì. Voglio la possibilità di impedire a javascript di utilizzare eventi di clic del mouse che provengono dal mio pulsante destro del mouse.
Peter,

Un'altra soluzione non grata, ma un grande passo sopra JS completamente disabilitato. Ho usato FireFox noscript, che è ancora difficilmente utilizzabile, ma Chrome Notscripts è in realtà anche peggio. Entrambi richiedono un controllo dell'intervento manuale e fondamentalmente abilitano / disabilitano completamente JS per dominio. Se si desidera risolvere il problema della disabilitazione specifica di JS DOM a grana fine, entrambi non sono sufficienti. Anche se dalla pelle dei denti, è abbastanza buono da evitare il mio downvote.
JM Becker,

@TechZilla controlla la mia modifica sopra
Moab

0

Questo bookmarlet funziona su siti Google / Youtube a partire da agosto 2019 (testato su Chrome e 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();

Per i siti più difficili, imposta / passa aggressivo su vero (questo disabiliterà la maggior parte dei gestori di eventi e quindi disabiliterà l'interazione con la pagina):

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

Puoi facilmente abilitare / disabilitare o consentire / bloccare javascript su qualsiasi sito Web in Google Chrome. Basta fare clic sul segno di carta prima dell'URL del sito. Sotto le autorizzazioni vedrai javescript, fai clic sulla freccia giù per visualizzare un menu, seleziona "Blocca sempre su questo sito" e ricarica la pagina Web in modo che le modifiche abbiano effetto.

Spero che questo possa aiutare.

Ecco il link all'immagine.

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


2
Non sto cercando di bloccare tutto javascript. Voglio solo bloccare javascript dall'intercettazione dei clic del mouse destro. Alcuni browser offrono questa opzione.
Peter,

-1

Ho trovato questa estensione Chrome RightToCopy

abilita il tasto destro del mouse e seleziona e copia le funzionalità di testo dai siti.


-1

Sulla base della soluzione Shi B. ho ottenuto un modo affidabile per risolvere il problema su Google Chrome.

(1) Ottieni plugin custom-javascript-for-web per Chrome.

(2) Incolla document.oncontextmenu=null;nella console del plugin.

Funziona come un fascino.


(So ​​che questo è vecchio, ma sono troppo curioso di lasciarlo essere) Perché nel mondo lo useresti invece della console predefinita per questo? A me sembra solo un modo più difficile per ottenere esattamente lo stesso.
Dennis Krøger l'

1
nel mio caso, stavo tornando allo stesso sito Web (Dropbox Paper). Quindi ha automaticamente eseguito lo script per un sito Web. Fortunatamente, la compagnia lo
aggiustò

document.oncontextmenu=null;non funziona su leaves.google.com in Chrome.
xaxxon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.