【问题标题】:How to fix javascript error in application using IWebBrowser2?如何使用 IWebBrowser2 修复应用程序中的 javascript 错误?
【发布时间】:2012-09-28 14:58:58
【问题描述】:

我有一个 C++ 应用程序,它使用 IWebBrowser2 接口来呈现一些在线 html 页面。 问题是,当访问某个链接时,我收到一个 javascript 错误,尽管如果我使用 Internet Explorer 访问同一页面,则该页面加载时不会出现错误。 我的应用程序中收到的错误是“对象不支持此操作”

我能够通过使用 put_Silent() 方法并将其设置为 VARIANT_TRUE 来隐藏错误,但这不是解决方案,因为显示的内容不正确。

我知道 IWebBrowser2 正在使用 Internet Explorer 引擎加载页面,所以我想有办法解决这个问题,因为页面在 IE 中加载正常。

【问题讨论】:

  • 您是否尝试过其他浏览器并查看它们是否给出相同的错误?
  • 您可以在 IE 中使用 Javascript 调试器来查看究竟是什么代码失败了。
  • 我正在加载的页面不是我创建的。我不想修复 html(如果有任何问题)。我只想在我的应用中拥有与在 IE 中相同的行为。

标签: javascript c++ windows iwebbrowser2


【解决方案1】:

您可能必须实现IDocHostShowUI::ShowMessage

当您的应用程序托管浏览器控件时,您可以替换 Windows Internet Explorer 消息框标题(用于 带有自定义标题的 Microsoft JScript 警报)

我想你会想要返回 S_FALSE。

S_FALSE 主机未显示其 UI。 MSHTML 显示其消息框。

【讨论】:

    猜你喜欢
    • 2020-11-29
    • 2020-01-24
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多