在 Safari iPhone 上的新标签页中打开链接
Posted
技术标签:
【中文标题】在 Safari iPhone 上的新标签页中打开链接【英文标题】:Opening of links in new tab on Safari iPhone 【发布时间】:2016-08-10 16:18:43 【问题描述】:我有一个网站可以帮助人们为他们的 Instagram 帖子创建标题并评估主题标签。其中一项功能非常简单,只需将主题标签链接到 Instagram 即可查看它们包含哪些类型的图像。因为我不希望他们刚刚输入和评估的输入消失,所以我使用 target="_blank" 在新选项卡中打开了链接 - 这在桌面上完美运行,但在 iPhone 上,当您尝试点击标签链接。我怀疑通过禁用 target="_blank" 链接可能是某种保护,但我不确定。一切都只是简单的 html 链接。我尝试添加 rel="noreferrer" 但这没有任何区别。
因此,如果您对它为什么不起作用的原因有一个解释会有所帮助,但更有用的是关于如何在移动设备上获得我想要的东西的解决方案,简单地说:打开一个在新选项卡中链接,这样我就不会丢失刚刚呈现给用户的页面的输入/状态。
也非常感谢上述问题的替代解决方案。
【问题讨论】:
【参考方案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
一起使用。以上是关于在 Safari iPhone 上的新标签页中打开链接的主要内容,如果未能解决你的问题,请参考以下文章