【问题标题】:safari web app open rel="external" in safari instead of web-appsafari web 应用程序在 safari 中打开 rel="external" 而不是 web-app
【发布时间】:2014-05-06 17:41:22
【问题描述】:

我正在尝试使我的网站成为一个网络应用程序。我第一次观看它时,所有链接都在 safari 浏览器中打开。将脚本添加到不再有问题的站点后。 这是脚本:

if(("standalone" in window.navigator) && window.navigator.standalone){
    $(document).on('click', 'a', function(e) {
        if ($(this).attr('target') !== '_blank') {
            e.preventDefault();
            window.location = $(this).attr('href');
        }
    });
}

只有带有 'rel="external"' 的所有链接都保留在网络应用程序中。如果我将它们设置为目标“_blank”。

我想:如果我有一个查找 rel="external file" 的脚本会怎样。编辑上面的脚本不起作用。

所以我想要的是一个在 rel=external 元素上测试的脚本。如果找到它,则链接保持不变,如果在链接中找不到 rel=external,它会执行以下操作:

e.preventDefault();
window.location = $(this).attr('href');

【问题讨论】:

    标签: jquery hyperlink iphone-web-app


    【解决方案1】:

    在网络应用程序中打开外部浏览器窗口(独立) 您需要在 window.open 函数中使用 _system。 iPhone Safari 也有一个 bug,即在关闭新打开的窗口时无法正确重绘父窗口。

    var doc = document.documentElement;
    var top = (window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0);
    $('html, body').animate({scrollTop: 0});
    window.open(encodeURI(url),"_system",windowOpenSettings);
    $('html, body').animate({scrollTop: top});
    return;
    

    所有的滚动只是为了重新绘制 IOS 窗口并将用户放回到点击之前的位置。

    【讨论】:

      【解决方案2】:

      这个怎么样?

      if(! $(this).is('[rel="external"]') ) {
          e.preventDefault();
          window.location = $(this).attr('href');
      } else {
          window.open( $(this).attr('href') ); //opens a new window
      }
      

      已编辑:添加了一个 else 条件,该条件会导致带有 rel="external" 的链接在新窗口中打开。

      【讨论】:

      • 这个看起来不错。它仍然没有做我想要的。所有链接都保留在网络应用程序中。还有 rel="external" 的。女巫我想在常规 iOs safari 中打开 Web 应用程序之外
      • 您希望它们保留在 Web 应用程序中并同时在常规 Safari 中打开?这就是你所说的。此代码回答了您最初的问题。
      • 这不是我想要的。如果我有一个像 link 这样的链接,我希望它留在网络应用程序中。如果链接类似于 link 我希望它在普通浏览器中打开。
      • 那么,与此相反?
      • 确实如此。相反。这个脚本真的很棒..非常感谢
      猜你喜欢
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 2022-11-24
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2011-02-23
      相关资源
      最近更新 更多