48
edits
Welcome to Square Enix Wiki! Be sure to check out our To-Do List to see what work we need done!
(Created page with "→Any JavaScript here will be loaded for all users on every page load.: /*************************************** * Name: hasClass * Description: Checks if a element has ...") |
SilverCrono (talk | contribs) m (Tired of reloading. Sorry for the messy code.) |
||
Line 533: | Line 533: | ||
addOnloadHook(Projectlinks); | addOnloadHook(Projectlinks); | ||
addOnloadHook( createNavigationBarToggleButton ); | |||
// Code courtesy of pcj of WoWWiki. | |||
// This is a modified version of the WoWWiki site version, in that it is designed for global.js use. | |||
// Code adds a checkbox at the top of the Special:RecentChanges list, next to the header. | |||
// Ticking it sets a cookie (should be individual to wikis) and starts updating the RC list. | |||
// This occurs silently every 60 seconds without a full page reload occuring. | |||
function setCookie(c_name,value,expiredays) { | |||
var exdate=new Date() | |||
exdate.setDate(exdate.getDate()+expiredays) | |||
document.cookie=c_name+ "=" +escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) | |||
} | |||
function getCookie(c_name) { | |||
if (document.cookie.length>0) { | |||
c_start=document.cookie.indexOf(c_name + "=") | |||
if (c_start!=-1) { | |||
c_start=c_start + c_name.length+1 | |||
c_end=document.cookie.indexOf(";",c_start) | |||
if (c_end==-1) c_end=document.cookie.length | |||
return unescape(document.cookie.substring(c_start,c_end)) | |||
} | |||
} | |||
return "" | |||
} | |||
function getXmlHttpRequestObject() { | |||
if (window.XMLHttpRequest) { | |||
return new XMLHttpRequest(); //Not Internet Explorer | |||
} else if(window.ActiveXObject) { | |||
return new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer | |||
} else { | |||
//fail silently | |||
} | |||
} | |||
getRCDataRO = getXmlHttpRequestObject(); | |||
var cr = new RegExp("\r", "gm"); | |||
var lf = new RegExp("\n", "gm"); | |||
var endText = new RegExp('</div>[\t\s]*?<!-- end content -->[\t\s]*?<div class="visualClear">', "mi"); | |||
var rcTimer; | |||
var rcRefresh = 60000; | |||
function preloadAJAXRC() { | |||
s = 0; | |||
ajaxRCCookie = getCookie("ajaxRC")=="on" ? true:false; | |||
document.getElementsByTagName("h1")[s].innerHTML += ' <span style="font-size: xx-small; border-bottom: 1px dotted; cursor:help;" title="Enable auto-refreshing recent changes">Auto-Refresh:</span><input type="checkbox" id="ajaxRCtoggle" onClick="toggleRC();">'; | |||
document.getElementById("ajaxRCtoggle").checked = ajaxRCCookie; | |||
if (getCookie("ajaxRC")=="on") loadRCData(); | |||
} | |||
function toggleRC() { | |||
if (document.getElementById("ajaxRCtoggle").checked == true) { | |||
setCookie("ajaxRC", "on", 30); | |||
loadRCData(); | |||
} else { | |||
setCookie("ajaxRC", "off", 30); | |||
clearTimeout(rcTimer); | |||
} | |||
} | |||
function loadRCData() { | |||
if (getRCDataRO.readyState == 4 || getRCDataRO.readyState == 0) { | |||
if (location.href.indexOf("/wiki/")) { | |||
rcURL = "http://" + location.hostname + "/wiki/Special:RecentChanges" + location.search; | |||
} else { | |||
rcURL = "http://" + location.hostname + "/Special:RecentChanges" + location.search; | |||
} | |||
getRCDataRO.open("GET", rcURL, true); | |||
getRCDataRO.onreadystatechange = parseRCdata; | |||
getRCDataRO.send(null); | |||
} | |||
} | |||
function parseRCdata() { | |||
if (getRCDataRO.readyState == 4) { | |||
textFilter = new RegExp('<div id="bodyContent">.*?</div>[\t\s]*?<!-- end content -->[\t\s]*?<div class="visualClear">', "i"); | |||
rawRCdata = getRCDataRO.responseText.replace(cr, "").replace(lf, ""); | |||
filteredRCdata = textFilter.exec(rawRCdata); | |||
updatedText = filteredRCdata[0].replace('<div id="bodyContent">', "").replace(endText, ""); | |||
document.getElementById("bodyContent").innerHTML = updatedText; | |||
rcTimer = setTimeout("loadRCData();", rcRefresh); | |||
} | |||
} | |||
if (wgPageName == "Special:RecentChanges") addOnloadHook(preloadAJAXRC); |