使用谷歌地图的javascript网页不';我不能在安卓上工作

使用谷歌地图的javascript网页不';我不能在安卓上工作,javascript,Javascript,我使用Javascript创建了一个简单的Google地图网页。我解析一个XML文件,并在我居住的韩国城市的地图上显示一系列标记。在windows机器上的所有浏览器中都能很好地工作,但当我在Android手机上访问同一页面时就根本无法工作。我得到了网页的所有html,包括菜单、广告等,但地图甚至没有显示出来。 将手机连接到Eclipse并检查了日志,但我看不到任何错误。有人知道为什么Android在显示谷歌地图页面时会遇到问题吗 如果您想查看代码,请访问: 我用来填充地图的javascript如

我使用Javascript创建了一个简单的Google地图网页。我解析一个XML文件,并在我居住的韩国城市的地图上显示一系列标记。在windows机器上的所有浏览器中都能很好地工作,但当我在Android手机上访问同一页面时就根本无法工作。我得到了网页的所有html,包括菜单、广告等,但地图甚至没有显示出来。 将手机连接到Eclipse并检查了日志,但我看不到任何错误。有人知道为什么Android在显示谷歌地图页面时会遇到问题吗

如果您想查看代码,请访问: 我用来填充地图的javascript如下所示:

function detectBrowser() {
  var useragent = navigator.userAgent;
  var mapdiv = document.getElementById("map_canvas");

  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1 ) {
    mapdiv.style.width = '100%';
    mapdiv.style.height = '100%';
  } else {
    mapdiv.style.width = '600px';
    mapdiv.style.height = '800px';
  }
}

var markersArray = new Array();
var map;

function initialize() {
    var latlng = new google.maps.LatLng(35.543401,129.340954);
    var myOptions = {
      zoom: 12,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
    detectBrowser();

    var dine_image = new google.maps.MarkerImage(
      '/Maps/dine.png',
      new google.maps.Size(50,50),
      new google.maps.Point(0,0),
      new google.maps.Point(25,50)
    );
    var drink_image = new google.maps.MarkerImage(
      '/Maps/drink.png',
      new google.maps.Size(50,50),
      new google.maps.Point(0,0),
      new google.maps.Point(25,50)
    );

    var shadow = new google.maps.MarkerImage(
     '/Maps/shadow.png',
     new google.maps.Size(78,50),
     new google.maps.Point(0,0),
     new google.maps.Point(25,50)
    );


   // read the xml file
   if (window.XMLHttpRequest)  {// code for IE7+, Firefox, Chrome, Opera, Safari
 xmlhttp=new XMLHttpRequest();
   }
   else  {// code for IE6, IE5
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }

   xmlhttp.open("GET","/uoplaces.xml",false);
   xmlhttp.send();
   xmlDoc=xmlhttp.responseXML; 
   xml=xmlDoc.getElementsByTagName("place");

   // parse xml
   for (i=0; i < xml.length; i++) {
       var name = xml[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
       var type = xml[i].getElementsByTagName("name")[0].getAttribute("category");
       var link = xml[i].getElementsByTagName("link")[0].childNodes[0].nodeValue;
       var lat = xml[i].getElementsByTagName("lat")[0].childNodes[0].nodeValue / 1000000;
       var long = xml[i].getElementsByTagName("long")[0].childNodes[0].nodeValue / 1000000;


       var contentString = '<div id="content">'+
         '<h1 id="firstHeading" class="firstHeading">' + name + '</h1>'+
         '<a href=' + link + '>' + 'More Info' + '</a>'+
         '</div>';


       var infowindow = new google.maps.InfoWindow();

       var myLatlng = new google.maps.LatLng(lat,long);
       if (type == "restaurant") {
      var marker = new google.maps.Marker({
             position: myLatlng,
             map: map,
             type: type,
             icon: dine_image,
             shadow: shadow,
          html: contentString
      });
   }
   else {
      var marker = new google.maps.Marker({
         position: myLatlng,
         map: map,
         type: type,
         icon: drink_image,
         shadow: shadow,
         html: contentString
          });
       }

       google.maps.event.addListener(marker, 'click', (function(marker, i) {
          return function() {
            infowindow.setContent(this.html);
            infowindow.open(map, marker);
          }
       })(marker, i));

       markersArray.push(marker);

    } // parse

    for (i in markersArray) {
      markersArray[i].setMap(map);
    }

} //end function initialize



// Removes the overlays from the map, but keeps them in the array
function clearOverlays() {
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(null);
    }
  }
}

// Shows any overlays currently in the array
function showOverlays(category) {
  if (markersArray) {
    for (i in markersArray) {
      if (markersArray[i].type == category) {
         markersArray[i].setMap(map);
      }
    }
  }
}
函数检测浏览器(){
var useragent=navigator.useragent;
var mapdiv=document.getElementById(“映射画布”);
if(useragent.indexOf('iPhone')!=-1 | | useragent.indexOf('Android')!=-1){
mapdiv.style.width='100%';
mapdiv.style.height='100%';
}否则{
mapdiv.style.width='600px';
mapdiv.style.height='800px';
}
}
var markersArray=新数组();
var映射;
函数初始化(){
var latlng=新的google.maps.latlng(35.543401129.340954);
变量myOptions={
缩放:12,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“map_canvas”),
肌肽);
检测浏览器();
var dine_image=new google.maps.MarkerImage(
“/Maps/dine.png”,
新谷歌地图大小(50,50),
新google.maps.Point(0,0),
新谷歌地图点(25,50)
);
var drink_image=new google.maps.MarkerImage(
“/Maps/drink.png”,
新谷歌地图大小(50,50),
新google.maps.Point(0,0),
新谷歌地图点(25,50)
);
var shadow=new google.maps.MarkerImage(
“/Maps/shadow.png”,
新谷歌地图尺寸(78,50),
新google.maps.Point(0,0),
新谷歌地图点(25,50)
);
//读取xml文件
if(window.XMLHttpRequest){//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
else{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
open(“GET”,“/uoplaces.xml”,false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
xml=xmlDoc.getElementsByTagName(“位置”);
//解析xml
for(i=0;i
事实上,我已经创建了一个Android应用程序,使用了相同的GoogleMaps API、数据和用途,并且运行良好。只是Android浏览器或Android上的Firefox不起作用,这让我觉得可能是在initialize()函数中完成了XMLHTTPREQUEST


有什么想法吗

您是否尝试过包含这些元标记


编辑:

你的网页在安卓4.0.3上运行。你添加了一些代码,虽然我看到了

function detectBrowser() {
  var useragent = navigator.userAgent;
  var mapdiv = document.getElementById("map_canvas");

  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1 ) {
    mapdiv.style.width = '480px';
    mapdiv.style.height = '600px';

虽然行“parent.removeChild(nastylogo);”抛出“Uncaught Error:NOT\u FOUND\u ERR:DOM Exception 8”

以防其他人遇到此问题,但问题在于我的CSS。我已经将iPhone或Android设置为%,但没有设置大小。如果我有一个台式机/笔记本电脑浏览器,则大小已设置,但如果我有一个电话浏览器,则大小未设置,并且设置未设置内容的百分比,则没有地图画布可供绘制。

您下载网页源的链接不起作用。我有一个:但我添加了您提到的内容,但这没有帮助。仍然只是一个空白区域,地图应该在其中,链接只是实际站点网页的url。一旦加载到浏览器中,就可以查看源代码。应该是我从你的服务器得到了一个web页面not found响应,另外你需要将一个php页面放在zip中,使其可下载,否则web服务器将处理php,没有人能看到php source.wow。现在,我的桌面浏览器根本无法使用该网页。这不是我的好日子,所以无论我做什么测试,都可以在桌面上运行,但在手机上仍然无法运行。没有错误,什么都没有。你不需要php,那只是我的网页菜单。这个
  var parent = document.getElementById('templatemo_container');
    var nastylogo = document.getElementById('templatemo_top_panel');
    parent.removeChild(nastylogo);
  } else {
    mapdiv.style.width = '600px';
    mapdiv.style.height = '800px';
  }
}