sample.js
Alexander Hristov
 
0001
/**
0002
* Sample function to convert the HTML into a DOM XML tree. Only needed for Internet Explorer,
0003
* as Firefox already does this.
0004
*
0005
*/
0006
function
document2DOM
() { 0007
var
root
=
new
ActiveXObject
(
"MSXML.DOMDocument"
); 0008
root
.
async
=
false
; 0009
root
.
resolveExternals
=
false
; 0010
loadNode
(
root
,
root
,
document
); 0011
return
root
; 0012} 0013 0014
function
loadNode
(
root
,
parentNode
,
htmlNode
) { 0015
switch
(
htmlNode
.
nodeType
) { 0016
// Comment node
0017
case
8
:
0018
parentNode
.
appendChild
(
root
.
createComment
(
htmlNode
.
nodeValue
) ); 0019
return
; 0020 0021
// CDATA section
0022
case
4
:
0023
parentNode
.
appendChild
(
root
.
createCDATASection
(
htmlNode
.
nodeValue
) ); 0024
return
; 0025 0026
// Text node node
0027
case
3
:
0028
parentNode
.
appendChild
(
root
.
createTextNode
(
htmlNode
.
nodeValue
) ); 0029
return
; 0030 0031
// Document Node
0032
case
9
:
0033
var
children
=
htmlNode
.
childNodes
; 0034
for
(
var
i
=
0
;
i
<
children
.
length
;
i
++
) { 0035
loadNode
(
root
,
root
,
children
[
i
]); 0036 } 0037
return
; 0038 0039
// Element node node
0040
case
1
:
0041
var
element
=
root
.
createElement
(
htmlNode
.
nodeName
) 0042
parentNode
.
appendChild
(
element
); 0043 0044
// Set all attributes
0045
for
(
var
i
=
0
;
i
<
htmlNode
.
attributes
.
length
;
i
++
) { 0046
var
attr
=
htmlNode
.
attributes
[
i
]; 0047
if
(
attr
.
nodeValue
&&
attr
.
specified
) { 0048
var
attrNode
=
root
.
createAttribute
(
attr
.
nodeName
); 0049
attrNode
.
value
=
attr
.
nodeValue
; 0050
element
.
setAttributeNode
(
attrNode
); 0051 } 0052 } 0053 0054
// Now process the children
0055
var
children
=
htmlNode
.
childNodes
; 0056
for
(
var
i
=
0
;
i
<
children
.
length
;
i
++
) { 0057
loadNode
(
root
,
element
,
children
[
i
]); 0058 } 0059
return
; 0060 } 0061} 0062 0063
function
test
() { 0064
var
result
=
document2DOM
(); 0065
alert
(
result
.
xml
) 0066} 0067
org.code2web.lang.javascript.JSDeclaration@157f0dcdocument2DOM (...)
org.code2web.lang.javascript.JSDeclaration@863399loadNode (...)
org.code2web.lang.javascript.JSDeclaration@a59698test (...)
Coloring style :