📄 dom.js
字号:
if(!dojo._hasResource["dojox.data.dom"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.data.dom"] = true;dojo.provide("dojox.data.dom");//DOM type to int value for reference.//Ints make for more compact code than full constant names.//ELEMENT_NODE = 1;//ATTRIBUTE_NODE = 2;//TEXT_NODE = 3;//CDATA_SECTION_NODE = 4;//ENTITY_REFERENCE_NODE = 5;//ENTITY_NODE = 6;//PROCESSING_INSTRUCTION_NODE = 7;//COMMENT_NODE = 8;//DOCUMENT_NODE = 9;//DOCUMENT_TYPE_NODE = 10;//DOCUMENT_FRAGMENT_NODE = 11;//NOTATION_NODE = 12;//FIXME: Remove this file when possible.//This file contains internal/helper APIs as holders until the true DOM apis of Dojo 0.9 are finalized.//Therefore, these should not be generally used, they are present only for the use by XmlStore and the//wires project until proper dojo replacements are available. When such exist, XmlStore and the like//will be ported off these and this file will be deleted.dojo.experimental("dojox.data.dom");dojox.data.dom.createDocument = function(/*string?*/ str, /*string?*/ mimetype){ // summary: // cross-browser implementation of creating an XML document object. // // str: // Optional text to create the document from. If not provided, an empty XML document will be created. // mimetype: // Optional mimetype of the text. Typically, this is text/xml. Will be defaulted to text/xml if not provided. var _document = dojo.doc; if(!mimetype){ mimetype = "text/xml"; } if(str && (typeof dojo.global["DOMParser"]) !== "undefined"){ var parser = new DOMParser(); return parser.parseFromString(str, mimetype); // DOMDocument }else if((typeof dojo.global["ActiveXObject"]) !== "undefined"){ var prefixes = [ "MSXML2", "Microsoft", "MSXML", "MSXML3" ]; for(var i = 0; i<prefixes.length; i++){ try{ var doc = new ActiveXObject(prefixes[i]+".XMLDOM"); if(str){ if(doc){ doc.async = false; doc.loadXML(str); return doc; // DOMDocument }else{ console.log("loadXML didn't work?"); } }else{ if(doc){ return doc; //DOMDocument } } }catch(e){ /* squelch */ }; } }else if((_document.implementation)&& (_document.implementation.createDocument)){ if(str){ if(_document.createElement){ // FIXME: this may change all tags to uppercase! var tmp = _document.createElement("xml"); tmp.innerHTML = str; var xmlDoc = _document.implementation.createDocument("foo", "", null); for(var i = 0; i < tmp.childNodes.length; i++) { xmlDoc.importNode(tmp.childNodes.item(i), true); } return xmlDoc; // DOMDocument } }else{ return _document.implementation.createDocument("", "", null); // DOMDocument } } return null; // DOMDocument}dojox.data.dom.textContent = function(/*Node*/node, /*string?*/text){ // summary: // Implementation of the DOM Level 3 attribute; scan node for text // description: // Implementation of the DOM Level 3 attribute; scan node for text // This function can also update the text of a node by replacing all child // content of the node. // node: // The node to get the text off of or set the text on. // text: // Optional argument of the text to apply to the node. if(arguments.length>1){ var _document = node.ownerDocument || dojo.doc; //Preference is to get the node owning doc first or it may fail dojox.data.dom.replaceChildren(node, _document.createTextNode(text)); return text; // string } else { if(node.textContent !== undefined){ //FF 1.5 return node.textContent; // string } var _result = ""; if(node == null){ return _result; //empty string. } for(var i = 0; i < node.childNodes.length; i++){ switch(node.childNodes[i].nodeType){ case 1: // ELEMENT_NODE case 5: // ENTITY_REFERENCE_NODE _result += dojox.data.dom.textContent(node.childNodes[i]); break; case 3: // TEXT_NODE case 2: // ATTRIBUTE_NODE case 4: // CDATA_SECTION_NODE _result += node.childNodes[i].nodeValue; break; default: break; } } return _result; // string }}dojox.data.dom.replaceChildren = function(/*Element*/node, /*Node || array*/ newChildren){ // summary: // Removes all children of node and appends newChild. All the existing // children will be destroyed. // description: // Removes all children of node and appends newChild. All the existing // children will be destroyed. // node: // The node to modify the children on // newChildren: // The children to add to the node. It can either be a single Node or an // array of Nodes. var nodes = []; if(dojo.isIE){ for(var i=0;i<node.childNodes.length;i++){ nodes.push(node.childNodes[i]); } } dojox.data.dom.removeChildren(node); for(var i=0;i<nodes.length;i++){ dojo._destroyElement(nodes[i]); } if(!dojo.isArray(newChildren)){ node.appendChild(newChildren); }else{ for(var i=0;i<newChildren.length;i++){ node.appendChild(newChildren[i]); } }}dojox.data.dom.removeChildren = function(/*Element*/node){ // summary: // removes all children from node and returns the count of children removed. // The children nodes are not destroyed. Be sure to call dojo._destroyElement on them // after they are not used anymore. // node: // The node to remove all the children from. var count = node.childNodes.length; while(node.hasChildNodes()){ node.removeChild(node.firstChild); } return count; // int}dojox.data.dom.innerXML = function(/*Node*/node){ // summary: // Implementation of MS's innerXML function. // node: // The node from which to generate the XML text representation. if(node.innerXML){ return node.innerXML; // string }else if (node.xml){ return node.xml; // string }else if(typeof XMLSerializer != "undefined"){ return (new XMLSerializer()).serializeToString(node); // string }}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -