NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name mail.yandex.ru redirects remover // @name:ru Удаление редиректов из Яндекс.Почты // @namespace http://userstyles.org/ // @description Removes annoying mail.yandex.ru redirects from all in-mail links. // @description:ru Удаляет ненужные редиректы, которые вставляются во все письма в Яндекс.Почте // @grant none // @include https://mail.yandex.ru* // @include http://mail.yandex.ru* // @license MIT // @version 1.0.1 // ==/UserScript== (function() { document.addEventListener("DOMNodeInserted", function(evt) { replaceReds(evt.relatedNode); }); function replaceReds(parentNode) { var AllLinks = parentNode.getElementsByTagName('a'); var RedLinkExpr = /(.*)mail.yandex.ru\/re\.jsx\?(.*)/i; for (var i = 0; i < AllLinks.length; i++) if(RedLinkExpr.test(AllLinks.item(i).href)) { linkEncoded = getParam(RegExp.$2, "l"); linkParts = linkEncoded.split("_"); // dunno if more than one parameter group possible, but why take a chance? for (var j = 0; j < linkParts.length; j++) linkParts[j] = b64_to_utf8(linkParts[j]); AllLinks.item(i).href = linkParts.join("?"); } } function getParam(parameters, paramName) { var paramArray = parameters.split("&"); var i = 0; while(i < paramArray.length) { var paramParsed = paramArray[i].split("="); if(paramParsed[0] == paramName) // check parameter name return paramParsed[1]; // return parameter value if name matched i++; } return ""; } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Base64_encoding_and_decoding#The_.22Unicode_Problem.22 function b64_to_utf8(str) { return decodeURIComponent(escape(window.atob(str))); } })();