window.open 用于 Google 地图 - iPhone 上的灰屏 Google Chrome

Posted

技术标签:

【中文标题】window.open 用于 Google 地图 - iPhone 上的灰屏 Google Chrome【英文标题】:window.open for Google Maps - Gray Screen on iPhone Google Chrome 【发布时间】:2016-10-14 17:32:26 【问题描述】:

我有一个链接,我的用户可以点击该链接,使用以下网址在新标签页中打开一个谷歌地图位置:

https://www.google.com/maps?q=123%20W%20Main%20St.%20Dallas%20Texas

我使用 jQuery 打开新标签页:

$(document).on('click','a',function(event) 
  event.preventDefault();
  var hrefValue = $(this).attr('href');
  window.open(hrefValue,'_blank');
);

这适用于桌面用户和 iPhone Safari 用户。但在 iPhone Google Chrome 上,如果您安装了 Google Maps 应用程序,它将打开 Google Maps 应用程序(很好),如果您返回网站,它将显示灰屏(不好)。我可以通过选择“选项卡”图标(它不会显示新选项卡,仅显示我已经打开的选项卡)并再次选择相同的选项卡来解决此问题。有什么办法吗?

你可以在这里看到这个工作: https://jsfiddle.net/fnexq36n/2/

我的环境:

iPhone 5s (ios v9.3.2) 谷歌浏览器(最新) 谷歌地图(最新)

【问题讨论】:

因为无法发两个链接,所以截图如下:i.imgur.com/Z55iee2.png 为什么不直接添加target属性而不使用jQuery 【参考方案1】:

我在 php 代码中遇到了同样的问题,当我更改下面的行时问题就消失了

<a target="_blank" href="http://maps.google.com/maps?q=$latitude,$longitude"> $street $city $country </a> </br></br>"

<a  href="http://maps.google.com/maps?q=$latitude,$longitude"> $street $city $country </a> </br></br>"

删除target="_blank" 有帮助,但问题出在桌面上,它没有打开新标签。在 iPhone 上,它会打开谷歌地图应用程序。

如果您在代码中删除 _blank,这也可能有效。

【讨论】:

以上是关于window.open 用于 Google 地图 - iPhone 上的灰屏 Google Chrome的主要内容,如果未能解决你的问题,请参考以下文章

如何在每个循环内的 onclick 中使用 window.open

js window.open有时不能用于chrome

javascript window.open [重复]

Chrome ios - iframe:window.open 不适用于 onload 处理程序

javascript 打开页面window.location和window.open的区别

window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口