📄 dtue_ie5.js
字号:
// 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 + -