大家好,我通过SHDocVw想取得网页中的iframe的内容并向其中的表单赋值。在IE8中,网页是可以正常显示的,但通过代码取的IE并取iframe的内容时,发现iframe不是正常要显示的内容,而是跳转到提示不支持iframe的页面了。
在同事的电脑上测试了一下,3台IE8均不行,1台IE11可以正常取到网页内容。
这里我想问下为什么会这样。以及如果此路不通,有没有别的方式取网页的iframe并赋值的方法。
如果还需要其他的问题资源请回复我再提供。
C#初学者,实在找不到问题原因,请不吝赐教,非常感谢。
以下是取iframe的代码
IHTMLDocument2 doc2 = GetIHTMLDocument2();
object value = doc2.GetType().GetProperty("title").GetValue(doc2, null);
object jj;
MessageBox.Show(value.ToString() + "拥有IFRAME数量:" + doc2.parentWindow.frames.length.ToString());
for (int i = 0; i < doc2.parentWindow.frames.length; i++) {
if (i == 2) {
jj = i;
Thread.Sleep(5000);
HTMLWindow2Class frame = doc2.parentWindow.frames.item(ref jj) as HTMLWindow2Class;
StaticElem.println("\r\n第" + i + "层@@@@@\r\n" + frame.document.body.innerHTML);
}
}
以下是错误返回的网页源码片段:
<TABLE style="PADDING-LEFT: 5px; PADDING-RIGHT: 20px" id=Table4 border=0 cellSpacing=0 cellPadding=0 width="100%" height="100%">
<TBODY id=workPanel>
<TR class=pane_hide>
<TD><IFRAME onreadystatechange=stateListener(this) height="100%" src="/EnterpriseIndexAction.do" frameBorder=0 width="100%">对不起,您的浏览器不支持IFRAME!</IFRAME></TD></TR>
<TR style="HEIGHT: 0px" class=pane_hide valign="bottom">
<TD noWrap></TD></TR>
<TR class=pane>
<TD><IFRAME onreadystatechange=stateListener(this) height="100%" src="/CwbbTaxAction.do?activity=getData&ssq=YD&reportname=SB_CW_LRB_2005" frameBorder=0 width="100%">对不起,您的浏览器不支持IFRAME!</IFRAME></TD></TR>
<TR style="HEIGHT: 0px" class=pane valign="bottom">
<TD noWrap></TD></TR></TBODY></TABLE>