我正在開發一個使用Google Maps API v3的jQuery + Phonegap的移動Web應用程序,並且我在附加到地圖上的鏈接中遇到了一些問題。如何在彈出窗口中打開Google地圖鏈接?
我的問題是,如果可以在彈出窗口中打開條款和條件以及Google地圖鏈接,而不是在同一個窗口中打開它們,以避免在沒有Apple按鈕等設備的設備上出現問題。我試圖在地圖畫布的子元素上添加一個'click'事件並更改它們的目標,但是我一直無法實現。有解決方案嗎?
謝謝。
我正在開發一個使用Google Maps API v3的jQuery + Phonegap的移動Web應用程序,並且我在附加到地圖上的鏈接中遇到了一些問題。如何在彈出窗口中打開Google地圖鏈接?
我的問題是,如果可以在彈出窗口中打開條款和條件以及Google地圖鏈接,而不是在同一個窗口中打開它們,以避免在沒有Apple按鈕等設備的設備上出現問題。我試圖在地圖畫布的子元素上添加一個'click'事件並更改它們的目標,但是我一直無法實現。有解決方案嗎?
謝謝。
已解決!我在這個答案中找到了一個解決方案:https://stackoverflow.com/a/16575541/2507996。它改變了捕獲點擊事件的鏈接行爲並使用PhoneGap/Cordova InAppBrowser打開新窗口。謝謝你的回答。
這兩個鏈接都有target="_blank"
,所以通常它們應該在新窗口中自動打開。例如,Google地圖鏈接如下所示:
<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 discussion和this issue。
看起來他們希望人們使用PhoneGap的InAppBrowser,但它似乎與window.open()
函數具體相關。因此,您可以嘗試更改這些<a>
元素中的href
,以使用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"
並且MainViewController
中的更改。但是這已經過時了,並且需要與DOM元素相似的操作。
另一個想法...通常,擺弄這些地圖和ToS鏈接的內部運作可能被認爲是違反服務條款。不過,我認爲你可以在這裏輕易爭辯說,你只是在面對PhoneGap問題時保留這些鏈接的原意,以防止它們正常工作。
試試這個在您的window.location的,你在新標籤中打開:
i.e: <a href="#" onclick="window.open('stackoverflow.com')">New Map(In new window)</a>
嘗試使用ChildBrowser插件。您仍然可能需要執行一些JavaScript欺騙操作才能捕獲Tap並在ChildBrowser中打開它。
Try InAppBrowswer由PhoneGap提供。
http://docs.phonegap.com/en/edge/cordova_inappbrowser_inappbrowser.md.html#InAppBrowser
感謝您的回答。我注意到了這一點,但問題在於,當網頁被封裝爲使用Phonegap的本地應用程序時,所有頁面將在同一窗口中打開以模擬真實的本機應用程序。所以我想以彈出式或類似的方式打開它。 – alvarofd