【问题标题】:Opening of links in new tab on Safari iPhone在 Safari iPhone 上的新标签页中打开链接
【发布时间】:2016-08-10 16:18:43
【问题描述】:

我有一个网站可以帮助人们为他们的 Instagram 帖子创建标题并评估主题标签。其中一项功能非常简单,只需将主题标签链接到 Instagram 即可查看它们包含哪些类型的图像。因为我不希望他们刚刚输入和评估的输入消失,所以我使用 target="_blank" 在新选项卡中打开了链接 - 这在桌面上完美运行,但在 iPhone 上,当您尝试点击标签链接。我怀疑通过禁用 target="_blank" 链接可能是某种保护,但我不确定。一切都只是简单的 html 链接。我尝试添加 rel="noreferrer" 但这没有任何区别。

因此,如果您对它为什么不起作用的原因有一个解释会有所帮助,但更有用的是关于如何在移动设备上获得我想要的东西的解决方案,简单地说:打开一个在新选项卡中链接,这样我就不会丢失刚刚呈现给用户的页面的输入/状态。

也非常感谢上述问题的替代解决方案。

【问题讨论】:

    标签: html ios iphone


    【解决方案1】:

    试试这个js代码:

    function openTab(url) {
        // Create link in memory
        var a = window.document.createElement("a");
        a.target = '_blank';
        a.href = url;
    
        // Dispatch fake click
        var e = window.document.createEvent("MouseEvents");
        e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        a.dispatchEvent(e);
    };
    
    openTab('http://www.google.com');
    

    你可以在这里找到原帖:http://whoknew.dk/programmatically-opening-a-new-tab-window-on-mobile-safari-55.htm

    【讨论】:

    • 有趣我会试一试。但奇怪的是,链接说你可以只使用对我不起作用的目标 _blank。然而,这是一篇旧文章,所以这可能已经改变了。
    【解决方案2】:

    dispatchEvent 已弃用,您可以使用:

    function openTab(url) {
      // Create link in memory
      var a = window.document.createElement("a");
      a.target = '_blank';
      a.href = url;
    
      //click
      a.click();
    };
    

    【讨论】:

    • 如果没有用户交互来打开新选项卡并且用户在其 iOS 设备上阻止了弹出窗口,则不会与目标 _blank 一起使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 2013-11-30
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多