User:Stzzhang/monobook.js
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
//<div><pre><nowiki>
function updatehook() {
updatelinks(0);
}
function updatelinks(count) {
for(i=0;i+count<document.links.length;++i)
{
with(document.links[i+count]) {
var url=getupdatedurl(href,location);
if(url=="")continue;
if(innerHTML==href)
innerHTML=url;
href=url;
}
if(i>=100)
{
setTimeout("updatelinks("+(i+count)+")",1000);
return;
}
}
}
function getupdatedurl(href,loc) {
var domain=getpath1(loc);
var host=getpath2(loc);
var h=new String(href);
if(h==hrefstart(h))
{
var url;
var server=getserver(href);
if(server=="upload.wikimedia.org")return "";
if(server=="mail.wikipedia.org")return "";
if(server=="secure.wikimedia.org") {
if(getpath1(h)!=domain || getpath2(h)!=host)
url="https://secure.wikimedia.org/"+domain+"/"+host+"/"+getpath(h);
else return "/"+getpath(h);
}
else
url=update(h);
return url;
}
else
return "/"+domain+"/"+host+h;
}
function hrefstart(url) {
var ret=new String(url);
var start=/^(\/)(.*)/;
return ret.replace(start,"$2");
}
function getpath1(url) {
var ret=new String(url);
var path1=/^([A-Za-z0-9_]+):\/\/([^\/]*)\/([^\/]*)\/(.*)/;
var tmp=new String(url);
ret=ret.replace(path1,"$3");
if(ret==tmp) {
return ret.replace(/^([A-Za-z0-9_]+):\/\/([^\/]*)\/(.*)/,"$3");
}
return ret;
}
function getpath2(url) {
var ret=new String(url);
var path2=/^([A-Za-z0-9_]+):\/\/([^\/]*)\/([^\/]*)\/([^\/]*)\/(.*)/;
var tmp=new String(url);
ret=ret.replace(path2,"$4");
if(ret==tmp){
return ret.replace(/^([A-Za-z0-9_]+):\/\/([^\/]*)\/([^\/]*)\/(.*)/,"$4");
};
return ret;
}
function getpath(url) {
var ret=new String(url);
var path3=/^([A-Za-z0-9_]+):\/\/([^\/]*)\/(.*)/;
return ret.replace(path3,"$3");
}
function update(url) {
var ret=new String(url);
var ud=/^http:\/\/([^\.\/]*).(wikimedia|wikipedia|wiktionary|wikibooks|wikiquote|wikisource|wikinews).org\/(.*)/;
return ret.replace(ud,"https://secure.wikimedia.org/$2/$1/$3");
}
function getserver(url) {
var ret=new String(url);
var server=/^([A-Za-z0-9_]+):\/\/([^\/]*)\/(.*)/;
return ret.replace(server,"$2");
}
if(getserver(location)=="secure.wikimedia.org") {
addLoadEvent(updatehook);
}//</nowiki></pre></div>