Skip to content

Instantly share code, notes, and snippets.

@vandanojan
Last active March 24, 2024 15:46
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save vandanojan/5a94c3e601826f2e6d6bc8c8aaa1d5e9 to your computer and use it in GitHub Desktop.
Save vandanojan/5a94c3e601826f2e6d6bc8c8aaa1d5e9 to your computer and use it in GitHub Desktop.
To re-enable the right click (context) menu, it is enough to copy the code, type "javascript:" in the address bar of your browser and then paste the copied code, i.e., javascript:[CODE]
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]);
enablePointerEvents(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();
}
function enablePointerEvents(el) {
if (!el) return;
el.style.pointerEvents = "auto";
el.style.webkitTouchCallout = "default";
el.style.webkitUserSelect = "auto";
el.style.MozUserSelect = "auto";
el.style.msUserSelect = "auto";
el.style.userSelect = "auto";
enablePointerEvents(el.parentElement);
}
enableContextMenu();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment