IE9 破坏了我的 ActiveX WebBrowser 代码

发布于 2024-11-15 18:07:45 字数 395 浏览 3 评论 0原文

我正在使用嵌入在 PowerBuilder 应用程序窗口中的 WebBrowser 控件。该用途的一部分是用于邮件合并,其中我使用 Navigate(url, ...) 加载文档,然后等待 DocumentComplete(ReadyState 等于 4,即完成)。

之后,我想获取文档的正文,对其进行一些更改,然后打印它。但该 document.body 显示为 null,这意味着它尚未真正加载。如果我在尝试获取正文之前中断调试器或放入 MessageBox,那么总是可以的。

这在 IE8 中运行得很好,不需要任何中断或任何东西。

我尝试添加 Yield() 调用、休眠几秒钟等,但这些都没有帮助。

我也在 64 位 Windows 7 计算机上,不确定这是否相关。

有什么好主意吗?谢谢。

I'm using the WebBrowser control embedded in a window in a PowerBuilder application. Part of that use is for mail merge, where I load a document with Navigate(url, ...), then wait for the DocumentComplete (with ReadyState equals 4, i.e. Complete).

After that, I want to get the document's body, to change it some and then print it. But that document.body comes up as null, meaning it isn't really loaded yet. If I break in a debugger, or put in a MessageBox before trying to get the body, it's always OK.

This worked fine in IE8, without needing any break or anything.

I've tried adding in Yield() calls, sleeping for a few seconds, etc., but none of that helps.

I'm also on a 64-bit Windows 7 computer, not sure whether or not that is relevant.

Any bright ideas? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

揪着可爱 2024-11-22 18:07:45

好的。事实证明,在我的 DocumentComplete 事件中,我将 DesignMode 设置为 On。当我合并一个文档然后让用户编辑它时,这是必需的,但是当我进行电子邮件邮件合并、合并、打印为 PDF,然后通过电子邮件发送一个又一个文档时,这是没有必要的。

在IE8及更早版本中,没有造成任何问题。但在 IE9 中,由于某种原因,它导致 document.body 为空,除非或直到我在调试器或 MessageBox 中执行了诸如中断之类的操作。由于这在电子邮件合并过程中不合适,因此我只是编写了一些代码,因此在这种情况下我没有将 DesignMode 设置为 On,现在一切都正常了。

OK. It turns out that in my DocumentComplete event, I was setting DesignMode to On. That is required when I'm merging one document and then letting the user edit it, But when I was doing an email mail merge, and merging, printing to PDF and then emailing one document after another, it was not necessary.

In IE8 and earlier versions, it caused no problems. But in IE9, it for some reason caused the document.body to be null, unless or until I did something like a break in the debugger or a MessageBox. Since that wasn't appropriate in that email merge process, I just coded things so I didn't set DesignMode to On in that situation, and everything is OK now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文