从inappbrowser中的链接打开mobilesafari中的外部链接

open external links in mobile safari from a link inside inappbrowser

本文关键字:链接 mobilesafari 外部 inappbrowser      更新时间:2024-03-16

好的,所以我有一个简单的phonegap 3.2应用程序,我正在使用inappbrowser插件打开一个页面,在receivedEvent方法中:

var ref = window.open('urlxxxxx', '_blank', 'location=no,presentationstyle=fullscreen,toolbar=no');

加载的页面有一些链接,我需要做的是不是在inapp浏览器中打开这些链接,而是在移动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>

但它们都是在inapp浏览器中打开的,我如何在safari中打开它们??感谢的帮助

哦,我也试过在window.open函数中将'_blank'更改为'_self',但什么都没有,结果是一样的。

试试这个。我用的是Phonegap Build和jQuery Mobile。

*注意-我尝试了其他几种直接向锚标记添加属性的方法,例如<a href="http://externalsite.com target="_blank" data-rel="external" data-ajax="false">也尝试了target="_system,但都不起作用,所以我不得不使用javascript(不过只有5行)。

这并不太复杂,但我会带你走过去…

  1. 您需要防止锚点标记的默认行为。所以以某种方式抓住你关心的标签。我在所有要从外部打开的锚标记中添加了一个名为"external"的类。相当标准的东西:

    $(document).on('click', ".external", function (e) {
        e.preventDefault();
    };
    
  2. 然后从您试图在safari中加载的锚点获取href值。再次,这里没有添加太花哨的内容:

    $(document).on('click', ".external", function (e) {
        e.preventDefault();
        var targetURL = $(this).attr("href");
    };
    
  3. 这是一个需要挖掘的地方——我想Phonegap用2.3改变了他们的方法?无论如何,在一个新窗口中打开抓取的href(这里是"_system"的位置):

    $(document).on('click', ".external", function (e) {
        e.preventDefault();
        var targetURL = $(this).attr("href");
        window.open(targetURL, "_system");
    });
    

就是这样。至少这对我有效。

祝你好运!