?? ftiens4.js
字號:
{ //define a .xID in all nodes (folders and items) if you want to PERVESTATE that //work when the tree changes. The value eXternal value must be unique for each //node and must node change when other nodes are added or removed //The value may be numeric or string, but cannot have the same char used in cookieCutter if (typeof this.xID != "undefined") return this.xID else return this.id} // Events // ********************************************************* function clickOnFolder(folderId) { var clicked = findObj(folderId) if (!clicked.isOpen) { clickOnNodeObj(clicked) } if (lastOpenedFolder != null && lastOpenedFolder != folderId) clickOnNode(lastOpenedFolder); //sets lastOpenedFolder to null if (clicked.nChildren==0) { lastOpenedFolder = folderId; clicked.isLastOpenedfolder = true } if (isLinked(clicked.hreference)) { highlightObjLink(clicked); }} function clickOnNode(folderId) { clickOnNodeObj(findObj(folderId))}function clickOnNodeObj(folderObj) { var state = 0 var currentOpen state = folderObj.isOpen folderObj.setState(!state) //open<->close if (folderObj.id!=foldersTree.id && PERSERVESTATE) { currentOpen = GetCookie("clickedFolder") if (currentOpen == null) currentOpen = "" if (!folderObj.isOpen) //closing { currentOpen = currentOpen.replace(folderObj.getID()+cookieCutter, "") SetCookie("clickedFolder", currentOpen) } else SetCookie("clickedFolder", currentOpen+folderObj.getID()+cookieCutter) }}function clickOnLink(clickedId, target, windowName) { highlightObjLink(findObj(clickedId)); if (isLinked(target)) { window.open(target,windowName); }}function ld (){ return document.links.length-1} // Auxiliary Functions // ******************* function findObj(id){ var i=0; var nodeObj; if (typeof foldersTree.xID != "undefined") { nodeObj = indexOfEntries[i]; for(i=0;i<nEntries&&indexOfEntries[i].xID!=id;i++) //may need optimization ; id = i } if (id >= nEntries) return null; //example: node removed in DB else return indexOfEntries[id];}function isLinked(hrefText) { var result = true; result = (result && hrefText !=null); result = (result && hrefText != ''); result = (result && hrefText.indexOf('undefined') < 0); result = (result && hrefText.indexOf('parent.op') < 0); return result;}// Do highlighting by changing background and foreg. colors of folder or doc textfunction highlightObjLink(nodeObj) { if (!HIGHLIGHT || nodeObj==null || nodeObj.maySelect==false) {//node deleted in DB return; } if (browserVersion == 1 || browserVersion == 3) { var clickedDOMObj = getElById('itemTextLink'+nodeObj.id); if (clickedDOMObj != null) { if (lastClicked != null) { var prevClickedDOMObj = getElById('itemTextLink'+lastClicked.id); prevClickedDOMObj.style.color=lastClickedColor; prevClickedDOMObj.style.backgroundColor=lastClickedBgColor; } lastClickedColor = clickedDOMObj.style.color; lastClickedBgColor = clickedDOMObj.style.backgroundColor; clickedDOMObj.style.color=HIGHLIGHT_COLOR; clickedDOMObj.style.backgroundColor=HIGHLIGHT_BG; } } lastClicked = nodeObj; if (PERSERVESTATE) SetCookie('highlightedTreeviewLink', nodeObj.getID());}function gFld(description, hreference) { folder = new Folder(description, hreference) return folder } function gLnk(optionFlags, description, linkData, img) { var fullLink = ""; var targetFlag = ""; var target = ""; var protocolFlag = ""; var protocol = ""; if (optionFlags>=0) //is numeric (old style) or empty (error) { return oldGLnk(optionFlags, description, linkData) } targetFlag = optionFlags.charAt(0) if (targetFlag=="B") target = "_blank" if (targetFlag=="P") target = "_parent" if (targetFlag=="R") target = "basefrm" if (targetFlag=="S") target = "_self" if (targetFlag=="T") target = "_top" if (optionFlags.length > 1) { protocolFlag = optionFlags.charAt(1) if (protocolFlag=="h") protocol = "http://" if (protocolFlag=="s") protocol = "https://" if (protocolFlag=="f") protocol = "ftp://" if (protocolFlag=="m") protocol = "mailto:" } fullLink = "'" + protocol + linkData + "' target=" + target linkItem = new Item(description, protocol+linkData, target, img) return linkItem } //Function created Aug 1, 2002 for backwards compatibility purposesfunction oldGLnk(target, description, linkData){ var fullLink = ""; //Backwards compatibility code if (USEFRAMES) { if (target==0) { fullLink = "'"+linkData+"' target=\"basefrm\"" } else { if (target==1) fullLink = "'http://"+linkData+"' target=_blank" else if (target==2) fullLink = "'http://"+linkData+"' target=\"basefrm\"" else fullLink = linkData+" target=\"_top\"" } } else { if (target==0) { fullLink = "'"+linkData+"' target=_top" } else { if (target==1) fullLink = "'http://"+linkData+"' target=_blank" else fullLink = "'http://"+linkData+"' target=_top" } } linkItem = new Item(description, fullLink) return linkItem } function insFld(parentFolder, childFolder) { return parentFolder.addChild(childFolder) } function insDoc(parentFolder, document) { return parentFolder.addChild(document) } function preLoadIcons() { var auxImg auxImg = new Image(); auxImg.src = ICONPATH + "ftv2vertline.gif"; auxImg.src = ICONPATH + "ftv2mlastnode.gif"; auxImg.src = ICONPATH + "ftv2mnode.gif"; auxImg.src = ICONPATH + "ftv2plastnode.gif"; auxImg.src = ICONPATH + "ftv2pnode.gif"; auxImg.src = ICONPATH + "ftv2blank.gif"; auxImg.src = ICONPATH + "ftv2lastnode.gif"; auxImg.src = ICONPATH + "ftv2node.gif"; auxImg.src = ICONPATH + "ftv2folderclosed.gif"; auxImg.src = ICONPATH + "ftv2folderopen.gif"; auxImg.src = ICONPATH + "ftv2doc.gif"; auxImg.src = ICONPATH + "ftv2doc_orig.gif"; auxImg.src = ICONPATH + "ftv2doc_cust.gif";}//Open some folders for initial layout, if necessaryfunction setInitialLayout() { if (browserVersion > 0 && !STARTALLOPEN) clickOnNodeObj(foldersTree); if (!STARTALLOPEN && (browserVersion > 0) && PERSERVESTATE) PersistentFolderOpening();}//Used with NS4 and STARTALLOPENfunction renderAllTree(nodeObj, parent) { var i=0; nodeObj.renderOb(parent) if (supportsDeferral) for (i=nodeObj.nChildren-1; i>=0; i--) renderAllTree(nodeObj.children[i], nodeObj.navObj) else for (i=0 ; i < nodeObj.nChildren; i++) renderAllTree(nodeObj.children[i], null)}function hideWholeTree(nodeObj, hideThisOne, nodeObjMove) { var i=0; var heightContained=0; var childrenMove=nodeObjMove; if (hideThisOne) nodeObj.escondeBlock() if (browserVersion == 2) nodeObj.navObj.moveBy(0, 0-nodeObjMove) for (i=0 ; i < nodeObj.nChildren; i++) { heightContainedInChild = hideWholeTree(nodeObj.children[i], true, childrenMove) if (browserVersion == 2) { heightContained = heightContained + heightContainedInChild + nodeObj.children[i].navObj.clip.height childrenMove = childrenMove + heightContainedInChild } } return heightContained;} // Simulating inserAdjacentHTML on NS6// Code by thor@jscript.dk// ******************************************if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){ HTMLElement.prototype.insertAdjacentElement = function (where,parsedNode) { switch (where){ case 'beforeBegin': this.parentNode.insertBefore(parsedNode,this) break; case 'afterBegin': this.insertBefore(parsedNode,this.firstChild); break; case 'beforeEnd': this.appendChild(parsedNode); break; case 'afterEnd': if (this.nextSibling) this.parentNode.insertBefore(parsedNode,this.nextSibling); else this.parentNode.appendChild(parsedNode); break; } } HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr) { var r = this.ownerDocument.createRange(); r.setStartBefore(this); var parsedHTML = r.createContextualFragment(htmlStr); this.insertAdjacentElement(where,parsedHTML) }}function getElById(idVal) { if (document.getElementById != null) return document.getElementById(idVal) if (document.all != null) return document.all[idVal] alert("Problem getting element by id") return null}// Functions for cookies// Note: THESE FUNCTIONS ARE OPTIONAL. No cookies are used unless// the PERSERVESTATE variable is set to 1 (default 0)// The separator currently in use is ^ (chr 94)// *********************************************************** function PersistentFolderOpening(){ var stateInCookie; var fldStr="" var fldArr var fldPos=0 var id var nodeObj stateInCookie = GetCookie("clickedFolder"); SetCookie('clickedFolder', "") //at the end of function it will be back, minus null cases if(stateInCookie!=null) { fldArr = stateInCookie.split(cookieCutter) for (fldPos=0; fldPos<fldArr.length; fldPos++) { fldStr=fldArr[fldPos] if (fldStr != "") { nodeObj = findObj(fldStr) if (nodeObj!=null) //may have been deleted if (nodeObj.setState) { nodeObj.forceOpeningOfAncestorFolders() clickOnNodeObj(nodeObj); } else alert("Internal id is not pointing to a folder anymore. Consider using external IDs") } } }}function storeAllNodesInClickCookie(treeNodeObj){ var currentOpen var i = 0 if (typeof treeNodeObj.setState != "undefined") //is folder { currentOpen = GetCookie("clickedFolder") if (currentOpen == null) currentOpen = "" if (treeNodeObj.getID() != foldersTree.getID()) SetCookie("clickedFolder", currentOpen+treeNodeObj.getID()+cookieCutter) for (i=0; i < treeNodeObj.nChildren; i++) storeAllNodesInClickCookie(treeNodeObj.children[i]) }}function CookieBranding(name) { if (typeof foldersTree.treeID != "undefined") return name+foldersTree.treeID //needed for multi-tree sites. make sure treeId does not contain cookieCutter else return name} function GetCookie(name){ name = CookieBranding(name) var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) return getCookieVal (j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null;}function getCookieVal(offset) { var endstr = document.cookie.indexOf (";", offset); if (endstr == -1) endstr = document.cookie.length; return unescape(document.cookie.substring(offset, endstr));}function SetCookie(name, value) { var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; //var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; var path = "/"; //allows the tree to remain open across pages with diff names & paths name = CookieBranding(name) document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");}function ExpireCookie (name) { var exp = new Date(); exp.setTime (exp.getTime() - 1); var cval = GetCookie (name); name = CookieBranding(name) document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();}//To customize the tree, overwrite these variables in the configuration file (demoFramesetNode.js, etc.)var USETEXTLINKS = 0 var STARTALLOPEN = 0var USEFRAMES = 1var USEICONS = 1var WRAPTEXT = 0var PERSERVESTATE = 0var ICONPATH = '../misc/tree/'var HIGHLIGHT = 0var HIGHLIGHT_COLOR = 'white';var HIGHLIGHT_BG = 'blue';//Other variablesvar lastClicked = null;var lastClickedColor;var lastClickedBgColor;var indexOfEntries = new Array var nEntries = 0 var browserVersion = 0 var selectedFolder=0var lastOpenedFolder=nullvar t=5var doc = documentvar supportsDeferral = falsevar cookieCutter = '^' //You can change this if you need to use ^ in your xID or treeID valuesdoc.yPos = 0// Main function// ************* // This function uses an object (navigator) defined in// ua.js, imported in the main html page (left frame).function initializeDocument() { preLoadIcons() switch(navigator.family) { case 'ie4': browserVersion = 1 //Simply means IE > 3.x break; case 'nn4': browserVersion = 2 //NS4.x break; case 'gecko': browserVersion = 3 //NS6.x break; default: browserVersion = 0 //other, possibly without DHTML break; } supportsDeferral = ((browserVersion == 1 && navigator.version >= 5 && navigator.OS != "mac") || browserVersion == 3) if (!USEFRAMES && browserVersion == 2) browserVersion = 0; eval(String.fromCharCode(116,61,108,100,40,41)) //If PERSERVESTATE is on, STARTALLOPEN can only be effective the first time the page //loads during the session. For subsequent (re)loads the PERSERVESTATE data stored //in cookies takes over the control of the initial expand/collapse if (PERSERVESTATE && GetCookie("clickedFolder") != null) STARTALLOPEN = 0 //foldersTree (with the site's data) is created in an external .js (demoFramesetNode.js, for example) foldersTree.initialize(0, true, "") if (supportsDeferral && !STARTALLOPEN) foldersTree.renderOb(null) //delay construction of nodes else { renderAllTree(foldersTree, null); if (PERSERVESTATE && STARTALLOPEN) storeAllNodesInClickCookie(foldersTree) //To force the scrollable area to be big enough if (browserVersion == 2) doc.write("<layer top=" + indexOfEntries[nEntries-1].navObj.top + "> </layer>") if (browserVersion != 0 && !STARTALLOPEN) hideWholeTree(foldersTree, false, 0) } setInitialLayout() if (PERSERVESTATE && GetCookie('highlightedTreeviewLink')!=null && GetCookie('highlightedTreeviewLink')!="") { var nodeObj = findObj(GetCookie('highlightedTreeviewLink')) if (nodeObj!=null){ nodeObj.forceOpeningOfAncestorFolders() highlightObjLink(nodeObj); } else SetCookie('highlightedTreeviewLink', '') }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -