在 C# 一调用 frameBase2.contentWindow 就直接出错,搞得莫明其妙

global_biz 2014-06-24 09:22:15
Hi,

在用 C# 做 IE 的 BHO 时碰到了以下问题,不知是什么原因,请帮忙看下。

一调用 frameBase2.contentWindow 就直接出错,请看下面内容,谢谢。


public void OnDocumentComplete(object pDisp, ref object URL)
{
HTMLDocument htmlDocument = (HTMLDocument)browser.Document;

IHTMLElement iframeElement = htmlDocument.getElementById("iframe-id-1");
IHTMLFrameBase2 frameBase2 = (IHTMLFrameBase2)iframeElement;

if (frameBase2.readyState.Equals("complete", StringComparison.OrdinalIgnoreCase))
{
//这一行可以正常弹出提示
//提示内容为: [------Test 1-------] <IFRAME id=iframe-id-1 name=iframe-id-1 src="test.html"></IFRAME>
System.Windows.Forms.MessageBox.Show("[------Test 1-------] " + iframeElement.outerHTML);

//这一行一执行 frameBase2.contentWindow 就已经抛出异常,
//异常信息为:System.InvalidCastException : Specified cast is not valid.
System.Windows.Forms.MessageBox.Show("[------Test 2-------] " + (frameBase2.contentWindow == null ? "yes" : "no"));
}
}
...全文
167 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
global_biz3 2014-06-26
  • 打赏
  • 举报
回复
global_biz 2014-06-25
  • 打赏
  • 举报
回复
global_biz 2014-06-25
  • 打赏
  • 举报
回复
global_biz 2014-06-24
  • 打赏
  • 举报
回复
下面是出错的详细信息,请帮忙是什么原因。

System.InvalidCastException: Specified cast is not valid.
   at mshtml.IHTMLFrameBase2.get_contentWindow()

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧