javascript - Google map v3 未在 iPad 上加载 - 按钮加载但 map 只是蓝色

标签 javascript ios ipad google-maps google-maps-api-3

我正在使用 Google Maps v3 对站点上的地址进行地理编码,它在所有浏览器中都可以正常工作,显然在移动设备上除外。更具体地说,现在我只是想为 IOS 设备 (iPad/iPhone/iPod Touch) 修复它。

map 应用程序本身似乎正在加载,因为我可以看到 Google Logo 、使用条款链接、 map 和卫星按钮,甚至是街景小图标(顺便说一句,它是灰色的)。

下面是 map 在 iPad 上的截图。任何人都可以指出可能导致此问题的正确方向或如何在 IOS 设备上调试它吗?

iPad screenshot of GMaps v3

谢谢!


编辑

下面是用于渲染 map 的代码的核心部分。

function renderMap(elem, lat, lng) {
    lat = (null == lat || undefined == lat) ? -14.397 : lat;
    lng = (null == lng || undefined == lng) ? 120.644 : lng;
    var latlng = new google.maps.LatLng(lat, lng);
    var map    = new google.maps.Map(
        document.getElementById(elem.attr('id')), { 
            zoom: 11, 
            center: latlng, 
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
    );

    try {
        var marker = new google.maps.Marker({ map: map, position: latlng });
    } catch (err) {
        MAP_ERRORS.push(err);
    }
}

function initialize() {
    var msie7 = (navigator.appVersion.indexOf('MSIE 7.') == -1) 
        ? false : true;

    if (true != msie7) {
        $('#my-content-div' + ' > .gmap').each(function(index) {
            // these are hidden divs that contain these values
            var lat = $(this).parent().find('.lat').html();
            var lng = $(this).parent().find('.lng').html();
            renderMap($(this), lat, lng);
        });
    }
}
initialize();

编辑 2

我想我可能刚刚发现了真正的问题。看来 iPad 正试图将隐藏的纬度转换成一个电话号码。我使用 JS 技巧在 iPad 上查看页面源代码,特别是纬度(我认为是因为它是一个正数)Safari 将其转换为链接!来源显示如下:

<!-- iPad source -->
<span class="hidden lat">
    <a href="tel:36.783760070801">36.783760070801</a>
</span>

在它工作的所有其他浏览器中,源代码看起来应该:

<!-- Firefox 10.0.2 source (CORRECT) -->
<span class="hidden lat">36.783760070801</span>

有什么新想法吗?

最佳答案

在最终在 iPad 上查看页面源代码后,我能够将问题归结为 iPad Safari 正在将其转换为电话号码的隐藏纬度链接。我搜索了 Stack Overflow 并发现了这个:https://stackoverflow.com/a/227238/486233

<meta name="format-detection" content="telephone=no">

然后就解决了。

感谢大家的帮助!

关于javascript - Google map v3 未在 iPad 上加载 - 按钮加载但 map 只是蓝色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9595871/

相关文章:

ios - iphone/ipad dev - 如何以编程方式启动系统设置应用程序

ios - 快速从服务器响应中获取值(value)

javascript - 如何将 chai-as-promised 与 Typescript 一起使用?

javascript - jQuery:有没有一种方法可以自动将属性添加到动态生成的 HTML 中,就像 live() 处理事件一样?

javascript - JS检测safari桌面而非移动设备

ios - 辅助功能:如何始终将焦点设置在导航项的标题 View 上

ios - 是否可以在应用程序中关闭设备(iPhone/iPad)?

javascript - 如何在关闭时重置 Bootstrap 模式并再次打开它?

android - 用于智能手机的相机控制 HTML/PHP/Javascript?

ios - UITextView 可以从 NSTextAttachment 显示什么样的 NSData?