gpt4 book ai didi

javascript - IWebBrowser2 似乎没有执行 javascript

转载 作者:太空宇宙 更新时间:2023-11-04 16:26:38 26 4
gpt4 key购买 nike

我们程序的用户有时需要从第三方网站下载数据库,这需要他们登录并指定参数才能获取正确的数据库。我正在尝试将其合并到我们的程序中,以便用户不必打开单独的浏览器,并且我们的程序可以在下载时访问数据库。

我已经按照 Microsoft 的“使用 MFC 托管 Web 浏览器控件”中的规定将 Web 浏览器嵌入到对话框中,但它显然似乎无法正确执行某些网站的 javascript。我使用 IE、Chrome 或 Firefox 浏览网站没有任何问题。然而,通过嵌入式浏览器导航网站会产生多个脚本错误,其行为方式与独立浏览器完全不同,最终会阻止用户访问所需的数据库。我检查了网站源代码,发现 javascript 中指定的某些默认值并未被访问,并且某些功能也未被执行。我收到的一些错误消息是:

‘console’ is undefined ( the javascript is attempting to log messages to the console - I don’t think this has much effect on website content )

The value of the property ‘SelectSpectralModel’ is null or undefined, not a Function object

(SelectSpectralModel是一个javascript函数,用于确定显示哪些信息框,用户从中选择所需的内容)

我注意到,在 Microsoft Visual Studio Debug模式下运行代码时,在尝试导航网站时经常出现以下消息:

First-chance exception ….: Microsoft C++ exception: Js::JavascriptExceptionObject at memory location…..

我在调试中启用了异常,试图找到错误,但是当代码中断时,我不知道错误实际发生在哪里。

我似乎无法在网上找到任何关于为什么会发生这种情况的信息。我找到了很多关于 IWebBrowser2 的信息,但没有任何与这个特定问题相关的信息。我还找到了一些关于某人提出的解决方法(针对不同的问题,但似乎可能有所帮助)使用 OLE 自动化来运行 Internet Explorer 实例,但此时,我必须多做一些阅读来弄清楚这是如何完成的。

如果我能够尝试解决此问题,甚至在合并解决方法方面获得一些帮助,我将不胜感激。

最佳答案

Microsoft 嵌入式 Web 浏览器控件在文档模式 7 下运行。因此,如果您要使用 Fiddler 查看用户代理字符串,您将看到 IE 7 用户代理字符串。它也使用 IE7 的渲染和 Web 标准。

要覆盖此设置并使其使用 IE11 标准,您必须创建一个特定于您的可执行文件的注册表项。

 HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

contoso.exe = (DWORD) 00009000

请参阅MSDN documentation关于此

关于javascript - IWebBrowser2 似乎没有执行 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40160333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com