【发布时间】:2015-08-03 13:45:12
【问题描述】:
我想使用 VB6 WebBrowser 控件浏览到一个网站并自动填写一个 web 表单,但是每当我让它导航到一个网站时,它都会提示我一个 JS 错误 - JSON 未定义。任何人都可以帮助解决这个问题?
我最初的猜测是 VB6 对于某些网站来说“太旧”了,但我读到它实际上使用的是我们在我们的电脑上安装的 IE 版本,而我使用的是最新的 IE10 和 Win7 :-?
谢谢,
【问题讨论】:
我想使用 VB6 WebBrowser 控件浏览到一个网站并自动填写一个 web 表单,但是每当我让它导航到一个网站时,它都会提示我一个 JS 错误 - JSON 未定义。任何人都可以帮助解决这个问题?
我最初的猜测是 VB6 对于某些网站来说“太旧”了,但我读到它实际上使用的是我们在我们的电脑上安装的 IE 版本,而我使用的是最新的 IE10 和 Win7 :-?
谢谢,
【问题讨论】:
这个错误很可能是因为网页期望浏览器引擎提供自己的 JSON 实现(几年前,它必须由页面本身实现,然后连同 this one 之类的检查一起实现)
WebBrowser 控件引发错误的原因是它使用的引擎(默认情况下)已在不久前冻结到 IE7(未提供 JSON 对象),无论安装的实际 IE 版本如何,仅仅是因为如果不这样做,很多应用程序将在每次升级 IE 后停止正常/按预期运行。
您可以在客户端计算机(每个用户或所有用户)上设置the IE feature control key "FEATURE_BROWSER_EMULATION" (MSDN link),以定义在您的应用程序中使用时,WebBrowser 控件应模拟哪个版本的 IE。
有关此功能控制键的更多讨论(尤其是警告,例如某些 WebControl API 在此过程中被破坏),您需要阅读以下两篇文章中的至少一篇:
【讨论】: