访问 WebBrowser Control 和谷歌地图

问题描述 投票:0回答:4

我有一个 Microsoft Access 数据库,它使用 webBrowser 控件来显示根据所选信息动态创建的 Google 地图。

从 2015 年 2 月 17 日开始,他们停止工作,我收到此错误:

嗯,由于我的声誉,我不能添加图像,但它说:

本页脚本出现错误

线路:2 字符:279 错误:无法获取显示属性。无效的论点。 代码:0 网址:

我们公司的 IT 人员已经排除了错误是我们这边造成的可能性,因此表明它在谷歌方面。从那以后我发现了这个:

gmaps-api-问题

谷歌似乎在同一天有更新。我试图指定要在我的谷歌地图中使用的 api 版本,但那没有任何作用。

我还设置了一个新的 webBrower 来引用 Google 提供的 'Hello World' 示例,但收到相同的错误。

基本上,谷歌地图的任何东西都不起作用。如果我用文本构建一个简单的 html 页面(如果可行)。如果我使用 google.com 就可以了。

有什么建议吗?

vba google-maps ms-access google-maps-api-3 webbrowser-control
4个回答
3
投票

我最近也有问题(似乎没有理由)。有一天我打开我的使用Access WebBrowser 控件的Access 应用程序,突然谷歌地图说不支持该浏览器版本。奇怪的是,它在前一天工作得很好,所以我不确定是什么触发了这个问题?!?!

无论如何,我对这个问题做了一些研究,melanion 的答案非常接近,但我想我可以在这里提供更多帮助。默认情况下,Access WebBrowser 控件使用 IE7。所以诀窍是添加以下注册表项以获得访问权限,以针对您要使用的特定 IE 版本。您可以将以下键添加到您的注册表以针对 IE11:

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
MSACCESS.EXE=11001 (dword)

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DOCUMENT_COMPATIBLE_MODE]
MSACCESS.EXE=11001 (dword)

这适用于 32 位和 64 位 Access,无论您使用的是 32 位还是 64 位版本的 Windows。此外,如果您想为该计算机上的所有用户强制执行此操作,则可以使用 [HKEY_LOCAL_MACHINE] 键而不是 [HKEY_CURRENT_USER]。为了让它变得超级简单,我提供了代码来制作一个批处理脚本文件来自动为您完成所有这些工作:

  1. Create a file named something like
    ForceAccessUseIE11.bat
    (file extension must be "bat" to run this batch automatically)
  2. 在其中放置以下代码行:

    reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION" /v MSACCESS.EXE /t REG_DWORD /d 11000
    
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DOCUMENT_COMPATIBLE_MODE" /v MSACCESS.EXE /t REG_DWORD /d 11000
    
  3. 保存文件,然后双击运行它,将为您添加密钥。

最后,我要说的是,您还可以使用 Access WebBrowser 控件定位您想要的任何版本的 IE。以下是您可能想要使用的值的列表:

  1. 11001 - IE11 边缘模式
  2. 11000 - IE11 默认模式
  3. 10001 - IE10 标准模式
  4. 10000 - IE10 默认模式
  5. 9999 - IE9 标准模式
  6. 9000 - IE9 默认模式
  7. 8888 - IE8 标准模式
  8. 8000 - IE8 默认模式
  9. 7000 - IE7

无论如何,我希望这些信息对你也有帮助。这个问题让我很头疼,花了好几个小时才弄明白。但是这个修复对我来说似乎非常有效,所以我希望它也能帮助你!


1
投票

我有同样的问题,我在脚本中将 API 版本更改为 3.19(错误是 v=3.20 或 v=3.exp)。 因此,如果您将脚本更改为“https://maps.googleapis.com/maps/api/js?v=3.19”或 3.20 之前的任何其他内容可能没问题


0
投票

或将项目添加到注册表

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"YourApp.exe"=dword:00001F40

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DOCUMENT_COMPATIBLE_MODE]
"YourApp.exe"=dword:00001F40

WebBrowser 充当 IE7,但现在 google maps API 不再接受 IE7。 所以,我们必须显式地将 WebBrowser 的兼容模式从 ie7 更改为 ie8。


-3
投票

看来现在ie已经退役了,不可能阻止了。 指向另一个版本的 ie 不起作用。

有什么方法可以让它指向边缘吗?

© www.soinside.com 2019 - 2024. All rights reserved.