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

Content deleted Content added
Lupin (talk | contribs)
double gah
major rewrite, works with tabbed browsing too
Line 1:
// Adds a "Changes since last load" link to your watchlist. <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 (unescape(window.___location.href).indexOf("Special:Watchlist") < 0) return;
var then=window.sinceLinkThen;
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;
}
 
// just one little ID attribute would be _so_ nice...
window.loadSincePage=function() {
var lkwlNotePara = document.getElementByIdgetElementsByTagName('listSincehr')[0];
while (wlNotePara && !(wlNotePara.tagName && wlNotePara.tagName.toLowerCase() == 'p'))
lk.href=listSinceUrl();
wlNotePara = wlNotePara.nextSibling;
}
if (!foundwlNotePara) return;
 
var anchslink = document.getElementsByTagNamecreateElement('Aa');
link.id = 'listSince';
link.href = '#listSince'; // must have a href to show as link!
 
window.sinceLinkThen var then = +(new Date());
var fixLinkHref = function () {
var url =document window.___location.href.split('#')[0];
var days = ( +(new Date()) - then )/(1000 * 3600 * 24);
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;
return true;
};
link.onclick = fixLinkHref;
link.onmousedown = fixLinkHref; // react to middle clicks too
 
var sp= wlNotePara.appendChild(document.createElement('spanbr'));
wlNotePara.appendChild(link);
link.appendChild(document.createTextNode('Changes'));
wlNotePara.appendChild(document.createTextNode(' since last load.'));
});
 
if (/[=\/]Special(%3[Aa]|:)Watchlist/.test(document.___location.href)) {
addOnloadHook(addListSinceLink);
}
//</nowiki></pre>