MediaWiki:Gadget-MediaLoaderContext.js

function resolveID(id) { var replaced = id.replaceAll(".26", "&"); replaced = replaced.replaceAll(".21", "!"); replaced = replaced.replaceAll(".28", "(");   replaced = replaced.replaceAll(".29", ")"); replaced = replaced.replaceAll(".CF.89", "ω"); replaced = replaced.replaceAll(".7E", "~"); replaced = replaced.replaceAll(".27", "'"); replaced = replaced.replaceAll(".40", "@"); replaced = replaced.replaceAll(".23", "#"); replaced = replaced.replaceAll(".24", "$"); replaced = replaced.replaceAll(".25", "%"); return replaced; } String.prototype.replaceAll = function (search, replacement) { var target = this; return target.split(search).join(replacement); }; //Had to do a one line string due to MediaWiki JS restrictions var contextmenu = " File not set Open file page Open file page in new tab "; //I know I could avoid some lines but I don't really want to change how it is var el = document.createElement("div"); el.innerHTML = contextmenu; document.body.append(el); $(".load-media").contextmenu(function (e) {   if (e.target.tagName != "DIV") {        return;    }    $(".-context-menu").css("display", "block")        .css("top", e.pageY)        .css("left", e.pageX);    if (e.target.id == "") {        $(".-context-menu-media-load-file").text(resolveID(e.target.parentElement.id.split("|")[0]));    }    else {        $(".-context-menu-media-load-file").text(resolveID(e.target.id.split("|")[0]));    }    e.preventDefault;    return false; }); $(document).click(function (e) {   var t = $(e.target);    if (t.hasClass("-context-menu-text") || t.hasClass("-context-menu-item")) {        return;    }    $(".-context-menu").css("display", "none") }) $(document).contextmenu(function (e) {   $(".-context-menu").css("display", "none") }) $(".-context-menu-media-load-open").click(function (e) { window.location = "/wiki/" + e.target.previousSibling.innerHTML }) $(".-context-menu-media-load-tab").click(function (e) { window.open("/wiki/" + e.target.previousSibling.previousSibling.innerHTML) })