javascript - 从 inappbrowser 内的链接在 mobile safari 中打开外部链接

标签 javascript cordova safari cordova-3

好的,我有一个简单的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 行)。

这并不太复杂,但我会引导您完成它......

  1. 您需要阻止 anchor 标记的默认行为。因此,请以某种方式捕获您关心的标签。我向所有想要从外部打开的 anchor 标记添加了一个名为“external”的类。相当标准的东西:

    $(document).on('click', ".external", function (e) {
        e.preventDefault();
    };
    
  2. 然后捕获 href来自您尝试在 Safari 中加载的 anchor 的值。再次强调,这里没有添加太多花哨的内容:

    $(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");
    });
    

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

祝你好运!

关于javascript - 从 inappbrowser 内的链接在 mobile safari 中打开外部链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20382671/

相关文章:

javascript - Famo.us - 记录 'curve' 函数

javascript - 使用单个函数隐藏多个输入

android - 通过设备上安装的 android 应用程序进行调试的正确方法

android - Cordova 应用更改 MainActivity 布局

java - 无法在 Windows 32 位中使用 Web 驱动程序导航到 Safari 中的给定 URL

javascript - 我如何在 Safari 10+ 中使用 BroadcastChannel API 或类似的东西?

javascript - 如何从 TypeScript 项目中调用 JavaScript 库?

javascript - Zend 框架中的 Google CDN

javascript - ionic : How to add a master layout?

javascript - 模仿移动 safari 的默认缩放