首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IWebBrowser2似乎没有执行javascript

IWebBrowser2似乎没有执行javascript
EN

Stack Overflow用户
提问于 2016-10-20 17:01:01
回答 1查看 1.3K关注 0票数 1

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

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

代码语言: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函数,它决定出现哪些信息框,用户从中选择他们想要的内容)

我注意到,在模式下运行代码时,在尝试浏览网站时经常会出现以下消息:

代码语言:javascript
复制
First-chance exception ….: Microsoft C++ exception: Js::JavascriptExceptionObject at memory location…..

我在调试中启用了异常,试图定位错误,但当代码中断时,我不知道错误实际发生在何处。

我似乎无法在网上找到任何关于为什么会发生这种情况的信息。我已经找到了很多关于IWebBrowser2的信息,但是没有任何与这个特定问题相关的信息。我还找到了一些解决办法(针对不同的问题,但似乎很有帮助),使用OLE自动化运行Internet Explorer的实例,但此时,我需要做更多的阅读,才能弄清楚这是如何实现的。

任何我可以得到的帮助,试图补救这个问题,甚至在融入一个解决办法的一些帮助,将非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-11 23:14:57

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

要覆盖它并让它使用IE11标准,您必须创建一个特定于您的可执行文件的注册表条目。

代码语言:javascript
复制
 HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

                 contoso.exe = (DWORD) 00009000

请参阅这方面的MSDN文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40160333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档