google map api在ie6中:缺少对象的解决方案

用过google map api的人都应该会注意到,示例的js脚本在FF,opera,...(非ie6的浏览器)都正常.在ie6下会报错:
缺少对象
错误的行号一般都指向GMap2对象创建的行上

解决方案有两种:
1.在meta中指定charset=utf-8,原因大家可以去google中勾一下
2.如果应用中的charset都是非utf-8哪怎么办呢?总不能为了一粒米丢掉所有玉米.方案如下
要在网站中使用map api就要引用一个js文件,我们可以在这想办法,在script的属性中也有一个charset属性,添加它
 <script ... charset="utf-8"></script>

下面是一些示例
用的map key为:t6new.cn的

默认示例(ie下会提示缺少对象)
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAy_92lh6L5xhcKXiWFze7ahSeyyn5-963h60-vJRKrf4xaRdBuBTmF2UsZnFk8o95hGt2T99GRoVPiA"
  6.       type="text/javascript"></script>
  7. <title>google map demo</title>
  8. <script type="text/javascript">
  9. //<![CDATA[
  10.     var map = null;
  11.     var geocoder = null;
  12.     function initialize() {
  13.       if (GBrowserIsCompatible()) {
  14.         map = new GMap2(document.getElementById("map_canvas"));
  15.         map.setCenter(new GLatLng(37.5429, 121.3776), 13);
  16.         geocoder = new GClientGeocoder();
  17.       }
  18.     }
  19.     function showAddress(address) {
  20.       if (geocoder) {
  21.         geocoder.getLatLng(
  22.           address,
  23.           function(point) {
  24.             if (!point) {
  25.               alert(address + " not found");
  26.             } else {
  27.               map.setCenter(point, 13);
  28.               var marker = new GMarker(point);
  29.               map.addOverlay(marker);
  30.               marker.openInfoWindowHtml(address);
  31.             }
  32.           }
  33.         );
  34.       }
  35.     }
  36. //]]>
  37. </script>
  38. </head>
  39. <body onload="initialize()" onunload="GUnload()">
  40. <input type="text" name="address" size="50" value="烟台市西盛街28号第一大道" onblur="showAddress(this.value);" />
  41. <div id="map_canvas" style="width: 500px; height: 300px"></div>
  42. </body>
  43. </html>
meta示例:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAy_92lh6L5xhcKXiWFze7ahSeyyn5-963h60-vJRKrf4xaRdBuBTmF2UsZnFk8o95hGt2T99GRoVPiA"
  6.       type="text/javascript"></script>
  7. <title>google map demo</title>
  8. <script type="text/javascript">
  9. //<![CDATA[
  10.     var map = null;
  11.     var geocoder = null;
  12.     function initialize() {
  13.       if (GBrowserIsCompatible()) {
  14.         map = new GMap2(document.getElementById("map_canvas"));
  15.         map.setCenter(new GLatLng(37.5429, 121.3776), 13);
  16.         geocoder = new GClientGeocoder();
  17.       }
  18.     }
  19.     function showAddress(address) {
  20.       if (geocoder) {
  21.         geocoder.getLatLng(
  22.           address,
  23.           function(point) {
  24.             if (!point) {
  25.               alert(address + " not found");
  26.             } else {
  27.               map.setCenter(point, 13);
  28.               var marker = new GMarker(point);
  29.               map.addOverlay(marker);
  30.               marker.openInfoWindowHtml(address);
  31.             }
  32.           }
  33.         );
  34.       }
  35.     }
  36. //]]>
  37. </script>
  38. </head>
  39. <body onload="initialize()" onunload="GUnload()">
  40. <input type="text" name="address" size="50" value="烟台市西盛街28号第一大道" onblur="showAddress(this.value);" />
  41. <div id="map_canvas" style="width: 500px; height: 300px"></div>
  42. </body>
  43. </html>

script属性charset示例
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAy_92lh6L5xhcKXiWFze7ahSeyyn5-963h60-vJRKrf4xaRdBuBTmF2UsZnFk8o95hGt2T99GRoVPiA"
  6.       type="text/javascript" charset="utf-8"></script>
  7. <title>google map demo</title>
  8. <script type="text/javascript">
  9. //<![CDATA[
  10.     var map = null;
  11.     var geocoder = null;
  12.     function initialize() {
  13.       if (GBrowserIsCompatible()) {
  14.         map = new GMap2(document.getElementById("map_canvas"));
  15.         map.setCenter(new GLatLng(37.5429, 121.3776), 13);
  16.         geocoder = new GClientGeocoder();
  17.       }
  18.     }
  19.     function showAddress(address) {
  20.       if (geocoder) {
  21.         geocoder.getLatLng(
  22.           address,
  23.           function(point) {
  24.             if (!point) {
  25.               alert(address + " not found");
  26.             } else {
  27.               map.setCenter(point, 13);
  28.               var marker = new GMarker(point);
  29.               map.addOverlay(marker);
  30.               marker.openInfoWindowHtml(address);
  31.             }
  32.           }
  33.         );
  34.       }
  35.     }
  36. //]]>
  37. </script>
  38. </head>
  39. <body onload="initialize()" onunload="GUnload()">
  40. <input type="text" name="address" size="50" value="烟台市西盛街28号第一大道" onblur="showAddress(this.value);" />
  41. <div id="map_canvas" style="width: 500px; height: 300px"></div>
  42. </body>
  43. </html>
在小站上的示例是基于script的charset属性:
http://www.t6new.cn/feature/maptest.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值