2011-09-27 47 views
4

我写的代码在浏览器上运行得非常好。但是当我在iPhone上连接到wifi时,在调试器中出现错误: Javascript错误 - 无法找到变量:googleJavascript错误 - 无法找到变量:google

每当我调用任何Google地图/方向/ geoLocation对象时,都会发生这种情况。


的代码如下:

map = new Ext.Map({ 
    mapOptions : { 
     center : center, 
     zoom : 20, 
     // mapTypeId : google.maps.MapTypeId.ROADMAP, 
     navigationControl: true, 
     navigationControlOptions: { 
       style: google.maps.NavigationControlStyle.DEFAULT 
      } 
    }, 

    listeners : { 
     maprender : function(comp, map){ 
      pos = new google.maps.LatLng(lats, longs, true); 
      var marker = new google.maps.Marker({ 
       position: pos, 
       //title : 'Sencha HQ', 
       map: map 
      }); 

      map.setMapTypeId(google.maps.MapTypeId.HYBRID); 
      setTimeout(function(){map.panTo (pos);} , 1000); 
     } 
    }, 

    geo:new Ext.util.GeoLocation({ 
     autoUpdate:true, 
     maximumAge: 0, 
     timeout:2000, 
     listeners:{ 
      locationupdate: function(geo) { 
       pos = new google.maps.LatLng(lats, longs, true); 
       center = new google.maps.LatLng(geo.latitude, geo.longitude); 
       if (map.rendered) 
        map.update(center) 
       else 
        map.on('activate', map.onUpdate, map, {single: true, data: pos}); 
      }, 
      locationerror: function(geo, bTimeout, bPermissionDenied, bLocationUnavailable, message) { 
       if(bLocationUnavailable){ 
        alert('Your Current Location is Unavailable on this device'); 
       } 
       else if (bPermissionDenied){ 
        alert('Location capabilities have been disabled on this device.'); 
       }  
      } 
     } 
    }) 
}); 

每当码遇到字谷歌会出现错误。也为经纬度对象我得到的JavaScript错误:“......没有经纬度构造的结果”

注:变量‘拉特’和‘多头’这部分的代码

之前已经n定义的给定值
+1

之前,你可以检查你包括外部谷歌API库? – ManseUK

+0

@ManseUK你是什么意思由外部谷歌API的lib?我在index.html的脚本标记中添加了如下内容:' ' – SashaZd

回答

3

所以我贴过这个早期的评论,但由于这是解决问题的实际解决方案,我要交的这一次:d

好原来,我之所以让所有那些错误是因为我在一个代理服务器后面。奇怪的是,当我使用LAN电缆连接时,代理允许我访问谷歌图书馆和服务器,但当我使用WiFi时则不能访问。希望其他人卡住wid这种错误会发现这有点帮助:)

+0

我们在iPhone上遇到同样的问题,您的评论帮助。 –

1

难道您是从Google服务器加载Google JavaScript库吗?如果是这样,当你没有WiFi时,这是行不通的。这就是为什么“谷歌”对象没有定义。只有当设备在线时,才能使用Google地图等。

编辑:没关系,你说你通过WiFi连接。奇。我想我们需要看到完整的源代码。

+2

好的结果是,我得到所有这些错误的原因是因为我是在一个代理。奇怪的是,代理允许我在使用LAN电缆连接时访问Google库和服务器,但在使用WiFi时不会。 希望some1其他谁卡住wid这种错误会发现这有点有用:) – SashaZd

+0

任何新的解决方案呢? –

8

什么为我工作:删除“https”开头从

<script src="https://maps.google.com/maps/api/js?sensor=false"></script> 

,使其成为

<script src="http://maps.google.com/maps/api/js?sensor=false"></script> 

我不知道为什么Safari不加载在不安全的人的安全页面,但它似乎没有。然后抛出错误。这是唯一一款似乎表现如此的移动浏览器。

+0

奖励提示:完全删除'http [s]:'前缀以让浏览器自动匹配页面的协议。也被称为[protocol-relative urls](http://paulirish.com/2010/the-protocol-relative-url/)。 –

0

我的解决方案是简单地确保谷歌地图js加载之前触摸js。简而言之

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>

<script id="microloader" type="text/javascript" src="touch/microloader/development.js"</script>

相关问题