javascript - 如何在弹出窗口中打开 Google map 链接?

标签 javascript html google-maps google-maps-api-3 cordova

我正在使用 jQuery+Phonegap 开发一个移动网络应用程序,它使用 Google Maps API v3,但我在使用附加到 map 的链接时遇到了一些问题。

我的问题是,是否可以在弹出窗口中打开条款和条件以及 Google map 链接,而不是在同一窗口中打开它们,以避免卡在没有物理按钮的设备(如 Apple 设备)上。我试图将“点击”事件附加到 map Canvas 的子元素并更改它们的目标,但我无法实现。有解决办法吗?

谢谢。

最佳答案

这两个链接都有 target="_blank"在他们身上,所以通常他们应该自动在新窗口中打开。例如,Google map 链接如下所示:

<a target="_blank"
   href="http://maps.google.com/maps?..."
   title="Click to see this area on Google Maps"
   style="position: static; overflow: visible; float: none; display: inline;"
>
    <div ...>
        <img ...>
    </div>
</a>

但正如您在评论中提到的那样,PhoneGap 似乎正在覆盖该行为。事实上,如果您搜索:

phonegap target _blank

您会发现很多关于该主题的内容,尤其是 this discussionthis issue .

看起来他们希望人们使用 PhoneGap 的 InAppBrowser , 但它似乎专门绑定(bind)到 window.open()功能。所以你可以尝试改变 href在这些<a>使用 window.open() 的元素调用而不是简单的 URL。

例如,如果您获得了对其中一个 <a> 的引用名为 link 的变量中的元素,你可以试试:

link.href =
    "javascript:window.open( '" +
        link.href +
     "', '_blank', 'location=yes' );";

这改变了 href来自:

http://google.com/etc.etc.

到(实际上全部在一行中,为了便于阅读而在此处格式化):

javascript:window.open(
    'http://google.com/etc.etc.',
    '_blank',
    'location=yes'
);

另一种可能性可能是 this answer 中的技术使用 rel="external"<a> 上标记和 MainViewController 中的更改.但这已被弃用,并且需要对 DOM 元素进行类似数量的摆弄。

另一个想法...通常,摆弄这些 map 和 ToS 链接的内部运作可能被视为违反服务条款。但是,我认为您可以很容易地在这里争辩说,面对阻止它们正常工作的 PhoneGap 问题,您只是保留了这些链接的原始意图。

关于javascript - 如何在弹出窗口中打开 Google map 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17229746/

相关文章:

javascript - CKEditor 转换输入源

html - 覆盖所有父/祖 parent /等....有溢出:hidden and Witdh

javascript - Google map api 从特定区域的数据库中搜索标记

javascript - 迭代响应数据以创建谷歌地图对象

android - 通过安卓应用分享谷歌地图静态图片

图像 slider 中的 JavaScript 模块模式

javascript - 目标 ="_blank"无法打开新窗口

javascript - 如何在Wordpress的一篇文章中插入或嵌入多个YouTube视频?

html - 在单词之间的空白处换行后更改字体大小

javascript - 在准备 70-480 Microsoft 考试时,我需要帮助理解为什么答案是正确的