我以前看过类似的帖子,但我在网上看到的解决方案似乎都不适合我。
我正在尝试使用 WebBrowser 控件来显示使用 Google Maps JavaScript API 的本地保存的 HTML 文件,但 JavaScript 仍然被顽固地禁用。
为了测试这个问题,我使用基于https://developers.google.com/maps/documentation/javascript/examples/map-simple的谷歌地图制作了一个简单的页面。我还添加了一个按钮来直接测试 JavaScript 是否正常运行
c:\map-test.html 在 Firefox 和 IE 中都能完美运行。
<!DOCTYPE html>
<html>
<head>
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
html, body, #map_canvas {
margin: 0;
padding: 0;
height: 100%;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var map;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<input type="button" onclick="alert('JavaScript Functioning');" value="Test JavaScript">
<div id="map_canvas"></div>
</body>
</html>
然后,我使用名为 cWebBrowser 的 WebBrowser 控件创建了一个 MS Access 表单,并添加了一个加载 c:\map-test.html 的方法。Google 地图界面无法加载,测试按钮已失效。
Private Sub Form_Current()
Me.cWebBrowser.ControlSource = "=(""file:///C:/map-test.html"")"
End Sub
接下来,我尝试了 map-simple 的在线版本。JavaScript 按预期工作并加载了谷歌地图界面
Private Sub Form_Current()
Me.cWebBrowser.ControlSource = "=(""https://google-developers.appspot.com/maps/documentation/javascript/examples/map-simple"")"
End Sub
我一直试图解决这个问题很长一段时间没有成功。
在这篇文章http://support.microsoft.com/?kbid=315933之后,我在 IE 安全设置中启用了我的电脑区域
在所有区域中,我启用了以下功能:
- 允许编写 Microsoft Web 浏览器控件的脚本
- 活动脚本
在高级选项卡下,我启用了以下功能:
- 允许 CD 中的活动内容在我的电脑上运行
- 允许活动内容在我的电脑上的文件中运行
有人建议将 Web 标记添加到我的页面中,但这也无济于事。
我试过清除缓存。
我已经尝试更改文件名,以防清除后缓存仍然存在。
map-test.html 在 IE 和 WebBrowser 控件中下载时都可以工作,但只能在本地使用 IE 工作。除了安全设置之外,还有什么可能导致问题?是否有我缺少的安全设置?我可以做任何其他测试来诊断问题吗?
我无计可施。
环境:
Windows 7 64bit
Access 2010
IE 9
附言
问题继续变得更奇怪
今天,我尝试创建一个非常简单的 JavaScript 页面,以确保不是 Google 地图代码导致了问题。
<!DOCTYPE html>
<html>
<body>
<input type="button" onclick="alert('JavaScript Functioning');" value="Test JavaScript">
</body>
</html>
起初它奏效了,我很高兴。接下来,我尝试了 Google Maps 测试页面,它也很有效!所以,我尝试了我的全功能地图(在 IE 和 Firefox 中工作),它从我的数据库应用程序加载 JSON 输出,结果一切都付诸东流,谷歌地图代码在内部导致了许多错误(不幸的是,我没有记录错误) .
现在,我回到了第一方;所有页面都不允许编写脚本,包括上面的 5 行?!?!