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

📄 dtue_ie5.js

📁 EVC4.rar
💻 JS
📖 第 1 页 / 共 3 页
字号:
// VERSION 9336
// This script works with IE 5.x+. Optimized for IE6.x

//************************** LOCALIZATION VARIABLES ***************************
// Load xml resource
var xmldoc = new ActiveXObject("MSXML.DOMDocument");
xmldoc.async = false;
xmldoc.load(jsPath + "\dtue.xml");

// Variables for Feedback links
var L_FeedbackLink_TEXT = getXMLText('L_FeedbackLink_TEXT');
var L_MessageLink_TEXT = getXMLText('L_MessageLink_TEXT');
var L_MailToLink_TEXT = getXMLText('L_MailToLink_TEXT');

// Variables for the running head buttons
var L_SeeAlso_TEXT = getXMLText('L_SeeAlso_TEXT');
var L_Requirements_TEXT = getXMLText('L_Requirements_TEXT');
var L_QuickInfo_TEXT = getXMLText('L_QuickInfo_TEXT');
var L_FilterTip_TEXT = getXMLText('L_FilterTip_TEXT');		// tooltip for language button
var L_Language_TEXT = getXMLText('L_Language_TEXT');		// heading for menu of programming languages
var L_ShowAll_TEXT = getXMLText('L_ShowAll_TEXT');		// label for 'show all languages' menu item

// Variables for Expand-Collapse functions
var L_ExpandAll_TEXT = getXMLText('L_ExpandAll_TEXT');
var L_CollapseAll_TEXT = getXMLText('L_CollapseAll_TEXT');
var L_ExColl_TEXT = getXMLText('L_ExColl_TEXT');

// defines the running head popup box. Localizable
var L_PopUpBoxStyle_Style = "WIDTH:200PX; PADDING:5px 7px 7px 7px; BACKGROUND-COLOR:#FFFFCC; BORDER:SOLID 1 #999999; VISIBILITY:HIDDEN; POSITION:ABSOLUTE; TOP:0PX; LEFT:0PX; Z-INDEX:2;";

//*************************** END LOCALIZATION ********************************

//**** Do not localize the following lines, they allow for bilingual files ****
var US_See_Also = "See Also";
var US_Requirements = "Requirements";
var US_QuickInfo = "QuickInfo"

//***ScriptSettings
var bRefTips = true		//Show RefTips
var bInCHM = false		//CHM check
var popOpen, theImg, theDiv, e;
var advanced = false;
var curLang = null;
var showAll = true;
var cook = null;
var baseUrl = jsPath; //jsPath comes from the dtuelink.js
var popupDIV = "<DIV ID='popUpWindow' STYLE='"+L_PopUpBoxStyle_Style+"'>" + "</DIV>";

//***************************** END VARIABLES *********************************

// ****************************************************************************
// *                           Common code                                    *
// ****************************************************************************

function getXMLText(term) {
	var out = xmldoc.selectSingleNode("/UI/String[@Id='" + term + "']").text;		
	return out;
}

// Check for <meta Name="RefTips" Content="False">
if (bRefTips==true){
	var mColl = document.all.tags("META");
	for (i=0; i<mColl.length; i++){
		if (mColl(i).name.toUpperCase()=="REFTIPS"){
			if (mColl(i).content.toUpperCase()=="FALSE") bRefTips = false;
		}
	}
}

// Check for <META Name="InChm" Content="True">
if (bInCHM==false){
	var mColl = document.all.tags("META");
	for (i=0; i<mColl.length; i++){
		if (mColl(i).name.toUpperCase()=="INCHM"){
			if (mColl(i).content.toUpperCase()=="TRUE") bInCHM = true;
		}
	}
}

if (ieVer >= 5) {
	var advanced = true;
}

if (advanced) {
	window.onload = bodyOnLoad;
	if (bInCHM==false){
		window.onbeforeprint = set_to_print;
		window.onafterprint = reset_form;
	}
}

function finishOnLoad(){
	document.onkeypress = ieKey;
	window.onresize = closeIE4;
	document.body.onclick = bodyOnClick;
	//IF THE USER HAS IE4+ THEY WILL BE ABLE TO VIEW POPUP BOXES
	if (advanced){
		document.body.insertAdjacentHTML('beforeEnd', popupDIV);
	}
return;
}


function bodyOnClick(){
	if (advanced) {
		var elem = window.event.srcElement;
		for (; elem; elem = elem.parentElement) {
			if (elem.id == "reftip")
				return;
		}
		hideTip();
		closeMenu();
		hideSeeAlso();
		resizeBan();
	}
}


function ieKey(){
	if (window.event.keyCode == 27){
		hideTip();
		closeMenu();
		hideSeeAlso();
		resizeBan();
		closeIE4();
	}
return;
}


function closeIE4(){
	document.all.popUpWindow.style.visibility = "hidden";
	popOpen = false;
	resizeBan();  //also resize the non-scrolling banner
return;
}


function bodyOnLoad(){
	if (advanced) {
		var address = location.href;
		var bookmarkStart = address.indexOf("#")
		// If it has a bookmark, check to see if Language is near A Name
		if (bookmarkStart>-1){
			var bookmark = address.substring(bookmarkStart+1);
			curLang = findLanguage(bookmark);
		}
		else {
			// Check the dynamic help window for current language.
			var cLang;
			try{
				for (i=1; i< window.external.ContextAttributes.Count; i++){
					if(window.external.ContextAttributes(i).Name.toUpperCase()=="DEVLANG"){
						var b = window.external.ContextAttributes(i).Values.toArray();
						cLang = b[0].toUpperCase();
					}
				}
			}
			catch(e){}
			if (cLang != null){
				if (cLang.indexOf("VB")!=-1) curLang = "Visual Basic";
				if (cLang.indexOf("VC")!=-1) curLang = "C++";
				if (cLang.indexOf("CSHARP")!=-1) curLang = "C#";
			}

			if (curLang == null){
				var l = "";
				var multipleLang = false;
				// Check to see what the help filter is set to.
				try {l = window.external.Help.FilterQuery.toUpperCase();}
				catch(e){}
				if (l.indexOf("VISUAL BASIC")!=-1){
					cLang = "Visual Basic";
					}
				if (l.indexOf("VISUAL C++")!=-1){
					if (cLang!=null) multipleLang = true;
					cLang = "C++";
					}
				if (l.indexOf("C#")!=-1){
					if (cLang!=null) multipleLang = true;
					cLang = "C#";
					}
				if (multipleLang==false) curLang = cLang;
				
			}
		}
		if (curLang != null)
			showAll = false;
		initLangs();
		resizeBan();
		if (bRefTips==true) initReftips();
		initSeeAlso();
	}
finishOnLoad();
}


function findLanguage(bookmark){
// Find span associated with bookmark
	var found = false
	var aColl = document.all.tags("A");
	for (i=0; i<aColl.length; i++){
		if (aColl(i).name.toUpperCase()==bookmark.toUpperCase()){
			var elem = null
			for(t = 1; t<4; t++){
				elem = document.all(aColl(i).sourceIndex + t);
				if (elem.tagName.toUpperCase()=="SPAN")
					found = true;
					break;
			}
			break;
		}
	}
//if found, filter language
	if (found){
		var lang = elem.innerText
		return lang.substring(lang.indexOf("[") + 1, lang.indexOf("]"));
	}
}


// ****************************************************************************
// *                        Language filtering                                *
// ****************************************************************************

function initLangs(){
	var hdr = document.all.hdr;
	if (!hdr)
		return;

	var langs = new Array;
	var spans = document.all.tags("SPAN");
	if (spans) {
		var iElem = spans.length;
		for (iElem = 0; iElem < spans.length; iElem++) {
			var elem = spans[iElem];
			if (elem.className == "lang") {

				// Update the array of unique language names.
				var a = elem.innerText.split(",");
				for (var iTok = 0; iTok < a.length; iTok++) {
					if (a[iTok]=="[A]"){
						langs[0]="A";
						elem.parentElement.outerText="";
					}
					var m = a[iTok].match(/([A-Za-z].*[A-Za-z+#0-9])/);
					if (m) {
						var iLang = 0;
						while (iLang < langs.length && langs[iLang] < m[1])
							iLang++;
						if (iLang == langs.length || langs[iLang] != m[1]) {
							var before = langs.slice(0,iLang);
							var after = langs.slice(iLang);
							langs = before.concat(m[1]).concat(after);
						}
					}
				}
			}
		}
	}

	if (langs.length > 0) {
		var pres = document.all.tags("PRE");
		if (pres) {
			for (var iPre = 0; iPre < pres.length; iPre++)
				initPreElem(pres[iPre]);
		}

		if (curLang == null){
			var obj = document.all.obj_cook;
			if (obj && obj.object) {
				cook = obj;
				if (obj.getValue("lang.all") != "1") {
					var lang = obj.getValue("lang");
					var c = langs.length;
					for (var i = 0; i != c; ++i) {
						if (langs[i] == lang) {
							curLang = langs[i];
							showAll = false;
						}
					}
				}
			}

		}

		var iLim = document.body.all.length;
		var head = null;
		for (var i = 0; i < iLim; i++) {
			var elem = document.body.all[i];
			if (elem.tagName.match(/^(P)|(PRE)|([DOU]L)$/))
				break;
			if (elem.tagName.match(/^H[1-6]$/)) {
				head = elem;
				head.insertAdjacentHTML('beforeEnd', '<SPAN CLASS=ilang></SPAN>');
			}
		}

		iLang = 0;
		foundA = false;
		while (iLang != langs.length){
			if (langs[iLang]=="A")
				foundA = true;
			iLang++;
		}
		if (!foundA)
			// don't language button on
			var td = hdr.insertCell(0);
		if (td) {
			// Add the language button to the button bar.
			td.className = "button1";
			td.onkeyup = ieKey;
			td.onkeypress = langMenu;
			td.onclick = langMenu;
			td.innerHTML = '<IMG id=button1 SRC="' + baseUrl + 'Filter1a.gif' + '" ALT="' +
				L_FilterTip_TEXT + '" BORDER=0 TABINDEX=0>';

			// Add the menu.
			var div = '<DIV ID="lang_menu" CLASS=langMenu onkeypress=ieKey><B>' + L_Language_TEXT + '</B><UL>';
			for (var i = 0; i < langs.length; i++)
				div += '<LI><A HREF="" ONCLICK="chooseLang(this)">' + langs[i] + '</A><BR>';
			div += '<LI><A HREF="" ONCLICK="chooseAll()">' + L_ShowAll_TEXT + '</A></UL></DIV>';
			try{nsbanner.insertAdjacentHTML('afterEnd', div);}
			catch(e){try{scrbanner.insertAdjacentHTML('afterEnd', div);}catch(e){}}
		}

		if (!showAll)
			filterLang();
	}
}


function initPreElem(pre){
	var htm0 = pre.outerHTML;

	var reLang = /<span\b[^>]*class="?lang"?[^>]*>/i;
	var iFirst = -1;
	var iSecond = -1;

	iFirst = htm0.search(reLang);
	if (iFirst >= 0) {
		iPos = iFirst + 17;
		iMatch = htm0.substr(iPos).search(reLang);
		if (iMatch >= 0)
			iSecond = iPos + iMatch;
	}

	if (iSecond < 0) {
		var htm1 = trimPreElem(htm0);
		if (htm1 != htm0) {
			pre.insertAdjacentHTML('afterEnd', htm1);
			pre.outerHTML = "";
		}
	}
	else {
		var rePairs = /<(\w+)\b[^>]*><\/\1>/gi;

		var substr1 = htm0.substring(0,iSecond);
		var tags1 = substr1.replace(/>[^<>]+(<|$)/g, ">$1");
		var open1 = tags1.replace(rePairs, "");
		open1 = open1.replace(rePairs, "");

		var substr2 = htm0.substring(iSecond);
		var tags2 = substr2.replace(/>[^<>]+</g, "><");
		var open2 = tags2.replace(rePairs, "");
		open2 = open2.replace(rePairs, "");

		pre.insertAdjacentHTML('afterEnd', open1 + substr2);
		pre.insertAdjacentHTML('afterEnd', trimPreElem(substr1 + open2));
		pre.outerHTML = "";
	}	
}


function trimPreElem(htm){
	return htm.replace(/[ \r\n]*((<\/[BI]>)*)[ \r\n]*<\/PRE>/g, "$1</PRE>").replace(
		/\w*<\/SPAN>\w*((<[BI]>)*)\r\n/g, "\r\n</SPAN>$1"
		);
}


function getBlock(elem){
	while (elem && elem.tagName.match(/^([BIUA]|(SPAN)|(CODE)|(TD))$/))
		elem = elem.parentElement;
	return elem;
}


function langMenu(){
	bodyOnClick();
	var btn = window.event.srcElement
	if (btn.id=="button1"){
	btn.src = btn.src.replace("a.gif", "c.gif");}

	window.event.returnValue = false;
	window.event.cancelBubble = true;

	var div = document.all.lang_menu;
	var lnk = window.event.srcElement;
	if (div && lnk) {
		var x = lnk.offsetLeft + lnk.offsetWidth - div.offsetWidth;
		div.style.pixelLeft = (x < 0) ? 0 : x;
		div.style.pixelTop = lnk.offsetTop + lnk.offsetHeight;
		div.style.visibility = "visible";
	}
}


function chooseLang(item){
	window.event.returnValue = false;
	window.event.cancelBubble = true;

	if (item) {
		closeMenu();
		curLang = item.innerText;
		showAll = false;
	}

	if (cook) {
		cook.putValue('lang', curLang);
		cook.putValue('lang.all', '');
	}

	filterLang();
}


function chooseAll(){
	window.event.returnValue = false;
	window.event.cancelBubble = true;

	closeMenu();

	showAll = true;

⌨️ 快捷键说明

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