我有一个类似
的结构<iframe tabindex="2" class="s-basicpanel s-panel-border" id="test1">
<html>
<body id ="test"></body>
</html>
</iframe>
我必须在body标签上添加内部文本。
我做了以下事情:
public void testData()
{
mshtml.IHTMLWindow2 frame2 = IEDOMDocument.frames.item(ref 0);
if (frame2 != null)
{
if(frame2.document.body != null)
{
mshtml.IHTMLElementCollection allElements = (mshtml.IHTMLElementCollection)frame2.document.body.all;
foreach(mshtml.IHTMLElement test in allElements)
{
Log("Tag Name:"+test.tagName);
if(test.tagName.ToLower() == "iframe")
{
string iframeId=test.getAttribute("id").ToString();
if(iframeId.Equals("test1"))
{
Log("found elemnet***");
mshtml.IHTMLElementCollection collection = (mshtml.IHTMLElementCollection)test.children; // return me empty collection
}
}
}
}
}
}
当我尝试访问iframe中的内部集合时,使用上述代码,它为我提供了空集合。
经过大量调试后,我才知道问题出在iframe中。 我需要别人的帮助。