/* Over-Encode URLs, version [0.0.1] Originally from: http://en.wikipedia.org/wiki/User:Splarka/encodeeverything.js safe to encode, everything but: mw.confi
/* Over-Encode URLs, version [0.0.1]
Originally from: http://en.wikipedia.org/wiki/User:Splarka/encodeeverything.js
safe to encode, everything but:
mw.config.get('wgServer') + mw.config.get('wgArticlePath')
wgServer
* + wgArticlePath
%2F / %5C \ %3F ?
%3D = %26 & %2B +
*/
addOnloadHook(function() {
if(window.encodeStuffAllLinksAuto) {
encodeStuffAllLinks();
return;
}
mw.util.addPortletLink('p-tb','javascript:encodeStuffAllLinks();','Encode links','t-encode','Encode the hell out of all links on this page, yeah!');
});
function encodeStuffAllLinks() {
var a = document.getElementsByTagName('a');
for(var i=0;i<a.length;i++) {
href = a[i].getAttribute('href',2)
if(!href) continue
var ap = wgArticlePath.replace(/\$1$/ig,'');
var sp = wgScriptPath + '/';
if(href.indexOf(ap) != -1) {
//contains '/wiki/'
var nhref = href.substring(0,href.indexOf(ap) + ap.length) + encodeStuff(href.substring(href.indexOf(ap) + ap.length));
a[i].setAttribute('href',nhref);
} else if(href.indexOf(sp) == 0) {
//starts with '/w/'
var nhref = encodeStuff(href);
a[i].setAttribute('href',nhref);
} else if(href.indexOf(wgServer) == 0) {
//elsewise starts with the current server name
var nhref = href.substring(0,wgServer.length) + encodeStuff(href.substring(wgServer.length));
a[i].setAttribute('href',nhref);
}
}
}
function encodeStuff(stuff) {
var code = '';
var txt = decodeURIComponent(stuff);
for(var i=0;i<txt.length;i++) {
if(/^[\\\/?=&+]$/.test(txt[i])) {
code += txt[i];
} else if(txt.charCodeAt(i) > 127 ) {
code += encodeURIComponent(txt[i]);
} else {
code += '%' + txt.charCodeAt(i).toString(16);
}
}
return code;
}
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.