🏠 返回首頁 

Greasy Fork is available in English.

mail.ru: clean links

Dereferences mail.ru links in emails when clicked. Skips advertisement block displayed when some links are clicked.

// ==UserScript==
// @name        mail.ru: clean links
// @namespace   lainscripts_mailru_clean_links
// @description Dereferences mail.ru links in emails when clicked. Skips advertisement block displayed when some links are clicked.
// @author      lainverse
// @license     CC BY-SA
// @version     5.1
// @include     https://e.mail.ru/*
// @grant       none
// ==/UserScript==
var clb = /^https?:\/\/r\.mail\.ru\/cl[a-z][0-9]+\/(.*)/i,
cgi = /&(amp;)?url=([^&]*)/i,
letter = document.getElementById('b-letter');
function locate_confirmer(i) {
if (!i) return;
var confirmForm = document.querySelector('#MailRuConfirm');
if (!confirmForm)
setTimeout(locate_confirmer, 100, i-1);
}
letter.addEventListener('click',function(e){
if (e.target.tagName.toUpperCase() !== 'A')
return;
var link = e.target;
for (var x in link)
if (x.indexOf('__originUrl') > -1) {
// stop propagation of this click event
e.preventDefault();
// start searching for a confirmer
locate_confirmer(11);
var res = null;
do {
res = cgi.exec(link[x]);
if (res) link[x] = decodeURIComponent(res[2]);
res = clb.exec(link[x]);
if (res) link[x] = 'http://' + res[1];
} while (res);
link.href = link[x];
console.log("Dereferenced link:", link[x]);
window.open(link[x], '_blank').focus();
delete link[x];
break;
}
});