如何从iframe访问HTML

时间:2018-08-14 19:48:21

标签: c# html .net

我有一个类似

的结构
<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中。 我需要别人的帮助。

0 个答案:

没有答案