好的,我有一个简单的phonegap 3.2应用程序,我正在使用receivedEvent
内的inappbrowser插件打开一个页面。我有的方法:
var ref = window.open('urlxxxxx', '_blank', 'location=no,presentationstyle=fullscreen,toolbar=no');
加载的页面有一些链接,我需要做的是不在inappbrowser中打开这些链接,而是在mobile safari中打开,我已经尝试过:
<a href="http://yahoo.com" target="_system">link 7</a>
<a href="http://yahoo.com" onclick="window.open(this.href,'_system'); return false;">link 3</a>
但是它们都在inappbrowser中打开,我怎样才能在safari中打开它们?感谢您的帮助
哦,我也尝试在 window.open 函数中将“_blank”更改为“_self”,但没有任何结果,结果相同。
最佳答案
试试这个。这对我有用。我正在使用 Phonegap Build 和 jQuery Mobile。
*注意 - 我尝试了几种其他方法将属性直接添加到 anchor 标记,例如<a href="http://externalsite.com target="_blank" data-rel="external" data-ajax="false">
也尝试过target="_system
- 但没有任何效果,所以我不得不使用 javascript(尽管只有 5 行)。
这并不太复杂,但我会引导您完成它......
您需要阻止 anchor 标记的默认行为。因此,请以某种方式捕获您关心的标签。我向所有想要从外部打开的 anchor 标记添加了一个名为“external”的类。相当标准的东西:
$(document).on('click', ".external", function (e) { e.preventDefault(); };
然后捕获
href
来自您尝试在 Safari 中加载的 anchor 的值。再次强调,这里没有添加太多花哨的内容:$(document).on('click', ".external", function (e) { e.preventDefault(); var targetURL = $(this).attr("href"); };
这需要一些挖掘 - 我猜 Phonegap 在 2.3 中改变了他们的方法?不管怎样,打开抢到的
href
在新窗口中(这是"_system"
出现的地方):$(document).on('click', ".external", function (e) { e.preventDefault(); var targetURL = $(this).attr("href"); window.open(targetURL, "_system"); });
就是这样。至少这对我有用。
祝你好运!
关于javascript - 从 inappbrowser 内的链接在 mobile safari 中打开外部链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20382671/