User:Gracenotes/monobook.js
From Wikipedia
< User:Gracenotes
Note: After saving, you may have to bypass your browser's cache to see the changes. Mozilla / Firefox / Safari: hold down Shift while clicking Reload, or press Ctrl-Shift-R (Cmd-Shift-R on Apple Mac); IE: hold Ctrl while clicking Refresh, or press Ctrl-F5; Konqueror:: simply click the Reload button, or press F5; Opera users may need to completely clear their cache in Tools→Preferences.
/* code's in messy state, TODO pull it all together addOnloadHook( addTabForCheck ); function addTabforCheck() { if (wgNamespaceNumber >= 0) { addPortletLink('p-cactions', "javascript:checkChange()", "check changes", 'ca-checkchange', 'Check if this page has been modified since you loaded it'); } else if (wgPageName == 'Special:Contributions') { addPortletLink('p-cactions', "javascript:checkContribChange()", "check changes", 'ca-checkchange', 'Check if the user has edited another page since this page loaded'); } } var infoXML, goodRevName; function checkChange() { if ( wgIsArticle ) var query = { 'action': 'query', 'prop': 'revisions', 'titles': wgPageName, 'rvlimit': 1, 'rvprop': 'content', 'rvstartid': goodRev.getAttribute( 'revid' ), 'format': 'xml' } Status.debug( 'query:' + query.toSource() ); infoXML = sajax_init_object(); infoXML.overrideMimeType('text/xml'); infoXML.onreadystatechange = tehXMLPage; infoXML.open('GET',wgServer+wgScriptPath+ '/api.php?action=query&prop=revisions&rvprop=timestamp|user|content&rvlimit=1'); infoXML.send(null); } function tehXMLPage() { if (infoXML.readyState != 4 ) { return; } if (infoXML.status != 200 ) { return; } if(!(goodRevInfo = revertXML.responseXML.documentElement)) { return; } var name = goodRevInfo.getElementsByTagName('rev').user; var tstamp = goodRevInfo.getElementsByTagName('rev').timestamp; } //regex used to determine presence of query string, from Lupin's pop ups function query_get(paramName) { var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)'); var h=document.location; var m; if (m=cmdRe.exec(h)) { try { return unescape(m[1]); } catch (someError) {} } return null; }; */