My HTML library uses CHtmlCollection with ClearScript V8.
node[i] will retuns null, becase BindGetImdex is called with nulll.
node.item(i) success.
========================= Start Script ===================================
var nodes = document.body.childNodes;
if(nodes == null || nodes === "undefined")
{
console.log("childNodes is undefied");
} else
var len = nodes.length;
console.log("childNodes length " + len)
for (var i = 0; i <len; i++) {
var elem = nodes[i]; // <== This Fail, Why? It returns null
//var elem = nodes.item(i); // <== SUCCESS
if(elem != null)
{
console.log("Curent Pos " + i + " node.length : " + len);
console.log("NodeName :" + elem.nodeName);
}else
{
console.log("null returns for element:" + elem);
}
}
========================= End Script ===================================
[BindGetMember ENTRY] binder.Name=body, ValueType=MultiHtmlCraft.Core.CHtmlDocument
[BindGetMember] targetType=MultiHtmlCraft.Core.CHtmlDocument, memberName=body
[CHtmlDocument.BindGetMember] binder.Name=body
[BindGetMember ENTRY] binder.Name=childNodes, ValueType=MultiHtmlCraft.Core.CHtmlElement
[BindGetMember] targetType=MultiHtmlCraft.Core.CHtmlElement, memberName=childNodes
[CHtmlElement.BindGetMember] binder.Name=childNodes, tagName=BODY
entering .___getPropertyByName(childNodes)
entering .___getPropertyByName(childNodes)
.GetDynamicMember(childNodes returns : [object HTMLCollection]
[BindGetMember ENTRY] binder.Name=length, ValueType=MultiHtmlCraft.Core.CHtmlCollection
[BindGetMember] targetType=MultiHtmlCraft.Core.CHtmlCollection, memberName=length
console.log('childNodes length 4')
BindGetIndex: target type = [object HTMLCollection], Indexes: (null) MultiHtmlCraft.Core.CHtmlCollection
BindGetIndex DEBUG: idx.Value='(null)', Expression.NodeType=Parameter, Expression.Type=System.Int32, LimitType=System.Int32
BindGetIndex: idx.Value='(null)', extractedRaw='(null)', rawType='(null)', Expression='Parameter'
Index -1 is out of range. returns null
console.log('null returns for element:null')
BindGetIndex: target type = [object HTMLCollection], Indexes: (null) MultiHtmlCraft.Core.CHtmlCollection
BindGetIndex DEBUG: idx.Value='(null)', Expression.NodeType=Parameter, Expression.Type=System.Int32, LimitType=System.Int32
BindGetIndex: idx.Value='(null)', extractedRaw='(null)', rawType='(null)', Expression='Parameter'
Index -1 is out of range. returns null
console.log('null returns for element:null')
BindGetIndex: target type = [object HTMLCollection], Indexes: (null) MultiHtmlCraft.Core.CHtmlCollection
BindGetIndex DEBUG: idx.Value='(null)', Expression.NodeType=Parameter, Expression.Type=System.Int32, LimitType=System.Int32
BindGetIndex: idx.Value='(null)', extractedRaw='(null)', rawType='(null)', Expression='Parameter'
Index -1 is out of range. returns null
console.log('null returns for element:null')
BindGetIndex: target type = [object HTMLCollection], Indexes: (null)
My HTML library uses CHtmlCollection with ClearScript V8.
node[i] will retuns null, becase BindGetImdex is called with nulll.
node.item(i) success.
========================= Start Script ===================================
var nodes = document.body.childNodes;
if(nodes == null || nodes === "undefined")
{
console.log("childNodes is undefied");
} else
var len = nodes.length;
console.log("childNodes length " + len)
for (var i = 0; i <len; i++) {
var elem = nodes[i]; // <== This Fail, Why? It returns null
//var elem = nodes.item(i); // <== SUCCESS
if(elem != null)
{
console.log("Curent Pos " + i + " node.length : " + len);
console.log("NodeName :" + elem.nodeName);
}else
{
console.log("null returns for element:" + elem);
}
}
========================= End Script ===================================
.GetDynamicMember(childNodes returns : [object HTMLCollection] [BindGetMember ENTRY] binder.Name=length, ValueType=MultiHtmlCraft.Core.CHtmlCollection [BindGetMember] targetType=MultiHtmlCraft.Core.CHtmlCollection, memberName=length console.log('childNodes length 4') BindGetIndex: target type = [object HTMLCollection], Indexes: (null) MultiHtmlCraft.Core.CHtmlCollection BindGetIndex DEBUG: idx.Value='(null)', Expression.NodeType=Parameter, Expression.Type=System.Int32, LimitType=System.Int32 BindGetIndex: idx.Value='(null)', extractedRaw='(null)', rawType='(null)', Expression='Parameter' Index -1 is out of range. returns null console.log('null returns for element:null') BindGetIndex: target type = [object HTMLCollection], Indexes: (null) MultiHtmlCraft.Core.CHtmlCollection BindGetIndex DEBUG: idx.Value='(null)', Expression.NodeType=Parameter, Expression.Type=System.Int32, LimitType=System.Int32 BindGetIndex: idx.Value='(null)', extractedRaw='(null)', rawType='(null)', Expression='Parameter' Index -1 is out of range. returns null console.log('null returns for element:null') BindGetIndex: target type = [object HTMLCollection], Indexes: (null) MultiHtmlCraft.Core.CHtmlCollection BindGetIndex DEBUG: idx.Value='(null)', Expression.NodeType=Parameter, Expression.Type=System.Int32, LimitType=System.Int32 BindGetIndex: idx.Value='(null)', extractedRaw='(null)', rawType='(null)', Expression='Parameter' Index -1 is out of range. returns null console.log('null returns for element:null') BindGetIndex: target type = [object HTMLCollection], Indexes: (null)[BindGetMember ENTRY] binder.Name=body, ValueType=MultiHtmlCraft.Core.CHtmlDocument
[BindGetMember] targetType=MultiHtmlCraft.Core.CHtmlDocument, memberName=body
[CHtmlDocument.BindGetMember] binder.Name=body
[BindGetMember ENTRY] binder.Name=childNodes, ValueType=MultiHtmlCraft.Core.CHtmlElement
[BindGetMember] targetType=MultiHtmlCraft.Core.CHtmlElement, memberName=childNodes
[CHtmlElement.BindGetMember] binder.Name=childNodes, tagName=BODY
entering .___getPropertyByName(childNodes)
entering .___getPropertyByName(childNodes)