⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wikibits.js

📁 DHT的入门介绍
💻 JS
📖 第 1 页 / 共 3 页
字号:
// MediaWiki JavaScript support functionsvar clientPC = navigator.userAgent.toLowerCase(); // Get client infovar is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1)                && (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1));var is_safari = ((clientPC.indexOf('applewebkit')!=-1) && (clientPC.indexOf('spoofer')==-1));var is_khtml = (navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled ));// For accesskeysvar is_ff2_win = (clientPC.indexOf('firefox/2')!=-1 || clientPC.indexOf('minefield/3')!=-1) && clientPC.indexOf('windows')!=-1;var is_ff2_x11 = (clientPC.indexOf('firefox/2')!=-1 || clientPC.indexOf('minefield/3')!=-1) && clientPC.indexOf('x11')!=-1;if (clientPC.indexOf('opera') != -1) {	var is_opera = true;	var is_opera_preseven = (window.opera && !document.childNodes);	var is_opera_seven = (window.opera && document.childNodes);	var is_opera_95 = (clientPC.search(/opera\/(9.[5-9]|[1-9][0-9])/)!=-1);}// Global external objects used by this script./*extern ta, stylepath, skin */// add any onload functions in this hook (please don't hard-code any events in the xhtml source)var doneOnloadHook;if (!window.onloadFuncts) {	var onloadFuncts = [];}function addOnloadHook(hookFunct) {	// Allows add-on scripts to add onload functions	onloadFuncts[onloadFuncts.length] = hookFunct;}function hookEvent(hookName, hookFunct) {	if (window.addEventListener) {		window.addEventListener(hookName, hookFunct, false);	} else if (window.attachEvent) {		window.attachEvent("on" + hookName, hookFunct);	}}// document.write special stylesheet linksif (typeof stylepath != 'undefined' && typeof skin != 'undefined') {	if (is_opera_preseven) {		document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/Opera6Fixes.css">');	} else if (is_opera_seven && !is_opera_95) {		document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/Opera7Fixes.css">');	} else if (is_opera_95) {		document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/Opera95Fixes.css">');	} else if (is_khtml) {		document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/KHTMLFixes.css">');	}}if (wgBreakFrames) {	// Un-trap us from framesets	if (window.top != window) {		window.top.location = window.location;	}}// for enhanced RecentChangesfunction toggleVisibility(_levelId, _otherId, _linkId) {	var thisLevel = document.getElementById(_levelId);	var otherLevel = document.getElementById(_otherId);	var linkLevel = document.getElementById(_linkId);	if (thisLevel.style.display == 'none') {		thisLevel.style.display = 'block';		otherLevel.style.display = 'none';		linkLevel.style.display = 'inline';	} else {		thisLevel.style.display = 'none';		otherLevel.style.display = 'inline';		linkLevel.style.display = 'none';	}}function historyRadios(parent) {	var inputs = parent.getElementsByTagName('input');	var radios = [];	for (var i = 0; i < inputs.length; i++) {		if (inputs[i].name == "diff" || inputs[i].name == "oldid") {			radios[radios.length] = inputs[i];		}	}	return radios;}// check selection and tweak visibility/class onclickfunction diffcheck() {	var dli = false; // the li where the diff radio is checked	var oli = false; // the li where the oldid radio is checked	var hf = document.getElementById('pagehistory');	if (!hf) {		return true;	}	var lis = hf.getElementsByTagName('li');	for (var i=0;i<lis.length;i++) {		var inputs = historyRadios(lis[i]);		if (inputs[1] && inputs[0]) {			if (inputs[1].checked || inputs[0].checked) { // this row has a checked radio button				if (inputs[1].checked && inputs[0].checked && inputs[0].value == inputs[1].value) {					return false;				}				if (oli) { // it's the second checked radio					if (inputs[1].checked) {						oli.className = "selected";						return false;					}				} else if (inputs[0].checked) {					return false;				}				if (inputs[0].checked) {					dli = lis[i];				}				if (!oli) {					inputs[0].style.visibility = 'hidden';				}				if (dli) {					inputs[1].style.visibility = 'hidden';				}				lis[i].className = "selected";				oli = lis[i];			}  else { // no radio is checked in this row				if (!oli) {					inputs[0].style.visibility = 'hidden';				} else {					inputs[0].style.visibility = 'visible';				}				if (dli) {					inputs[1].style.visibility = 'hidden';				} else {					inputs[1].style.visibility = 'visible';				}				lis[i].className = "";			}		}	}	return true;}// page history stuff// attach event handlers to the input elements on history pagefunction histrowinit() {	var hf = document.getElementById('pagehistory');	if (!hf) {		return;	}	var lis = hf.getElementsByTagName('li');	for (var i = 0; i < lis.length; i++) {		var inputs = historyRadios(lis[i]);		if (inputs[0] && inputs[1]) {			inputs[0].onclick = diffcheck;			inputs[1].onclick = diffcheck;		}	}	diffcheck();}// generate toc from prefs form, fold sections// XXX: needs testing on IE/Mac and safari// more comments to followfunction tabbedprefs() {	var prefform = document.getElementById('preferences');	if (!prefform || !document.createElement) {		return;	}	if (prefform.nodeName.toLowerCase() == 'a') {		return; // Occasional IE problem	}	prefform.className = prefform.className + 'jsprefs';	var sections = [];	var children = prefform.childNodes;	var seci = 0;	for (var i = 0; i < children.length; i++) {		if (children[i].nodeName.toLowerCase() == 'fieldset') {			children[i].id = 'prefsection-' + seci;			children[i].className = 'prefsection';			if (is_opera || is_khtml) {				children[i].className = 'prefsection operaprefsection';			}			var legends = children[i].getElementsByTagName('legend');			sections[seci] = {};			legends[0].className = 'mainLegend';			if (legends[0] && legends[0].firstChild.nodeValue) {				sections[seci].text = legends[0].firstChild.nodeValue;			} else {				sections[seci].text = '# ' + seci;			}			sections[seci].secid = children[i].id;			seci++;			if (sections.length != 1) {				children[i].style.display = 'none';			} else {				var selectedid = children[i].id;			}		}	}	var toc = document.createElement('ul');	toc.id = 'preftoc';	toc.selectedid = selectedid;	for (i = 0; i < sections.length; i++) {		var li = document.createElement('li');		if (i === 0) {			li.className = 'selected';		}		var a = document.createElement('a');		a.href = '#' + sections[i].secid;		a.onmousedown = a.onclick = uncoversection;		a.appendChild(document.createTextNode(sections[i].text));		a.secid = sections[i].secid;		li.appendChild(a);		toc.appendChild(li);	}	prefform.parentNode.insertBefore(toc, prefform.parentNode.childNodes[0]);	document.getElementById('prefsubmit').id = 'prefcontrol';}function uncoversection() {	var oldsecid = this.parentNode.parentNode.selectedid;	var newsec = document.getElementById(this.secid);	if (oldsecid != this.secid) {		var ul = document.getElementById('preftoc');		document.getElementById(oldsecid).style.display = 'none';		newsec.style.display = 'block';		ul.selectedid = this.secid;		var lis = ul.getElementsByTagName('li');		for (var i = 0; i< lis.length; i++) {			lis[i].className = '';		}		this.parentNode.className = 'selected';	}	return false;}// Timezone stuff// tz in format [+-]HHMMfunction checkTimezone(tz, msg) {	var localclock = new Date();	// returns negative offset from GMT in minutes	var tzRaw = localclock.getTimezoneOffset();	var tzHour = Math.floor( Math.abs(tzRaw) / 60);	var tzMin = Math.abs(tzRaw) % 60;	var tzString = ((tzRaw >= 0) ? "-" : "+") + ((tzHour < 10) ? "0" : "") + tzHour + ((tzMin < 10) ? "0" : "") + tzMin;	if (tz != tzString) {		var junk = msg.split('$1');		document.write(junk[0] + "UTC" + tzString + junk[1]);	}}function unhidetzbutton() {	var tzb = document.getElementById('guesstimezonebutton');	if (tzb) {		tzb.style.display = 'inline';	}}// in [-]HH:MM format...// won't yet work with non-even tzsfunction fetchTimezone() {	// FIXME: work around Safari bug	var localclock = new Date();	// returns negative offset from GMT in minutes	var tzRaw = localclock.getTimezoneOffset();	var tzHour = Math.floor( Math.abs(tzRaw) / 60);	var tzMin = Math.abs(tzRaw) % 60;	var tzString = ((tzRaw >= 0) ? "-" : "") + ((tzHour < 10) ? "0" : "") + tzHour +		":" + ((tzMin < 10) ? "0" : "") + tzMin;	return tzString;}function guessTimezone(box) {	document.getElementsByName("wpHourDiff")[0].value = fetchTimezone();}function showTocToggle() {	if (document.createTextNode) {		// Uses DOM calls to avoid document.write + XHTML issues		var linkHolder = document.getElementById('toctitle');		if (!linkHolder) {			return;		}		var outerSpan = document.createElement('span');		outerSpan.className = 'toctoggle';		var toggleLink = document.createElement('a');		toggleLink.id = 'togglelink';		toggleLink.className = 'internal';		toggleLink.href = 'javascript:toggleToc()';		toggleLink.appendChild(document.createTextNode(tocHideText));		outerSpan.appendChild(document.createTextNode('['));		outerSpan.appendChild(toggleLink);		outerSpan.appendChild(document.createTextNode(']'));		linkHolder.appendChild(document.createTextNode(' '));		linkHolder.appendChild(outerSpan);		var cookiePos = document.cookie.indexOf("hidetoc=");		if (cookiePos > -1 && document.cookie.charAt(cookiePos + 8) == 1) {			toggleToc();		}	}}function changeText(el, newText) {	// Safari work around	if (el.innerText) {		el.innerText = newText;	} else if (el.firstChild && el.firstChild.nodeValue) {		el.firstChild.nodeValue = newText;	}}function toggleToc() {	var toc = document.getElementById('toc').getElementsByTagName('ul')[0];	var toggleLink = document.getElementById('togglelink');	if (toc && toggleLink && toc.style.display == 'none') {		changeText(toggleLink, tocHideText);		toc.style.display = 'block';		document.cookie = "hidetoc=0";	} else {		changeText(toggleLink, tocShowText);		toc.style.display = 'none';		document.cookie = "hidetoc=1";	}}var mwEditButtons = [];var mwCustomEditButtons = []; // eg to add in MediaWiki:Common.js// this function generates the actual toolbar buttons with localized text// we use it to avoid creating the toolbar where javascript is not enabledfunction addButton(imageFile, speedTip, tagOpen, tagClose, sampleText, imageId) {	// Don't generate buttons for browsers which don't fully	// support it.	mwEditButtons[mwEditButtons.length] =		{"imageId": imageId,		 "imageFile": imageFile,		 "speedTip": speedTip,		 "tagOpen": tagOpen,		 "tagClose": tagClose,		 "sampleText": sampleText};}// this function generates the actual toolbar buttons with localized text// we use it to avoid creating the toolbar where javascript is not enabledfunction mwInsertEditButton(parent, item) {	var image = document.createElement("img");	image.width = 23;	image.height = 22;	image.className = "mw-toolbar-editbutton";	if (item.imageId) image.id = item.imageId;	image.src = item.imageFile;	image.border = 0;	image.alt = item.speedTip;	image.title = item.speedTip;	image.style.cursor = "pointer";	image.onclick = function() {		insertTags(item.tagOpen, item.tagClose, item.sampleText);		return false;	};	parent.appendChild(image);	return true;}function mwSetupToolbar() {	var toolbar = document.getElementById('toolbar');	if (!toolbar) { return false; }	var textbox = document.getElementById('wpTextbox1');	if (!textbox) { return false; }	// Don't generate buttons for browsers which don't fully	// support it.	if (!(document.selection && document.selection.createRange)		&& textbox.selectionStart === null) {		return false;	}	for (var i = 0; i < mwEditButtons.length; i++) {		mwInsertEditButton(toolbar, mwEditButtons[i]);	}	for (var i = 0; i < mwCustomEditButtons.length; i++) {		mwInsertEditButton(toolbar, mwCustomEditButtons[i]);	}	return true;}function escapeQuotes(text) {	var re = new RegExp("'","g");	text = text.replace(re,"\\'");	re = new RegExp("\\n","g");	text = text.replace(re,"\\n");	return escapeQuotesHTML(text);}function escapeQuotesHTML(text) {	var re = new RegExp('&',"g");	text = text.replace(re,"&amp;");	re = new RegExp('"',"g");	text = text.replace(re,"&quot;");	re = new RegExp('<',"g");	text = text.replace(re,"&lt;");	re = new RegExp('>',"g");	text = text.replace(re,"&gt;");	return text;}// apply tagOpen/tagClose to selection in textarea,// use sampleText instead of selection if there is nonefunction insertTags(tagOpen, tagClose, sampleText) {	var txtarea;	if (document.editform) {		txtarea = document.editform.wpTextbox1;	} else {		// some alternate form? take the first one we can find		var areas = document.getElementsByTagName('textarea');		txtarea = areas[0];	}	var selText, isSample = false;	if (document.selection  && document.selection.createRange) { // IE/Opera		//save window scroll position		if (document.documentElement && document.documentElement.scrollTop)			var winScroll = document.documentElement.scrollTop		else if (document.body)			var winScroll = document.body.scrollTop;		//get current selection  		txtarea.focus();		var range = document.selection.createRange();		selText = range.text;		//insert tags		checkSelectedText();		range.text = tagOpen + selText + tagClose;		//mark sample text as selected		if (isSample && range.moveStart) {			if (window.opera)				tagClose = tagClose.replace(/\n/g,'');			range.moveStart('character', - tagClose.length - selText.length); 			range.moveEnd('character', - tagClose.length); 		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -