Wikipedia:WikiProject User scripts/Scripts/Watchlist since: Difference between revisions

Content deleted Content added
Lupin (talk | contribs)
gah
change source to syntaxhighlight
 
(11 intermediate revisions by 7 users not shown)
Line 1:
// Adds a "Changes since last load" link to your watchlist. <syntaxhighlight lang="Javascript">
//<pre><nowiki>
function addListSinceLink() {
var anchs=document.getElementsByTagName('A');
var found=false;
for (var i=0; i<anchs.length; ++i) {
if (/[&]days=0[^0-9.]/.test(anchs[i].href)) { found=anchs[i]; break; }
}
if (!found) return;
window.sinceLinkThen=+(new Date());
var sp=document.createElement('span');
sp.innerHTML='<a id="listSince" onclick="loadSincePage()" href="#">Changes since last load</a>';
found.parentNode.parentNode.insertBefore(sp,found.parentNode.nextSibling);
}
 
addOnloadHook(function listSinceUrl( ) {
if (!mw.config.get('wgCanonicalSpecialPageName') || mw.config.get('wgCanonicalSpecialPageName') != "Watchlist") return;
var then=window.sinceLinkThen;
if (!document.forms[0] || !document.forms[0].namespace) return;
var days = ( +(new Date()) - then )/(1000 * 3600 * 24);
var url=document.___location.href.split('#')[0];
if ( /[?&]days=/.test(url) ) return url.replace(/([?&]days=)[^?&]*/, '$1'+days);
if (url.indexOf('?')==-1) url += '?'; else url += '&';
return url + 'days=' + days;
}
 
var splink = document.createElement('spana');
window.loadSincePage=function() {
var lk=document link.getElementById(id = 'listSince');
link.href = '#listSince'; // must have a href to show as link!
lk.href=listSinceUrl();
}
 
window.sinceLinkThen var then = +(new Date());
if (/[=\/]Special(%3[Aa]|:)Watchlist/.test(document.___location.href)) {
var fixLinkHref = function () {
addOnloadHook(addListSinceLink);
var url =document window.___location.href.split('#')[0];
}
var days = (( +(new Date()) - then ) + (60 * 1000)) / (1000 * 3600 * 24);
//</nowiki></pre>
if (url.match(/[?&]days=/))
if ( /[?&]days=/ this.test(url)href ) return= url.replace(/([?&]days=)[^?&]*/, '$1'+days);
else
this.href = url + (url.indexOf('?') < 0 ? '?':'&') + 'days=' + days;
if (!found) return true;
};
link.onclick = fixLinkHref;
link.onmousedown = fixLinkHref; // react to middle clicks too
 
var frag = document.createDocumentFragment();
frag.appendChild(document.createTextNode(' | '));
frag.appendChild(link);
link.appendChild(document.createTextNode('Changes'));
frag.appendChild(document.createTextNode(' since last load.'));
 
// just one little ID attribute would be _so_ nice...
var anchsnsSelectForm = document.getElementsByTagName('Aform')[0];
nsSelectForm.parentNode.insertBefore(frag, nsSelectForm);
});
 
//</syntaxhighlight>