Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F947607
dom.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Subscribers
None
dom.js
View Options
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
}
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 26, 12:33 (1 d, 11 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27096
Default Alt Text
dom.js (5 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment