使用 Javascript/jQuery 在 iOS 10.3.3 (safari) 中打开一个新选项卡

Posted

技术标签:

【中文标题】使用 Javascript/jQuery 在 iOS 10.3.3 (safari) 中打开一个新选项卡【英文标题】:Open a new tab in iOS 10.3.3 (safari) by using Javascript/jQuery 【发布时间】:2017-08-26 18:26:31 【问题描述】:

如何在 ios 10.3.3 Safari 浏览器中使用 javascript 在新标签页中打开 pdf。 将发生虚拟点击的 html 元素被隐藏。

<a id="obv-download" target="_blank" download="download" href=""></a>

使用 Ajax href 字段已填满,我需要相同的锚链接才能在新选项卡中打开。我用于打开 pdf 的代码如下(在 iOS 10.2 之前工作正常)。

$('#id_of_elem').attr('href', url);
var click_ev = document.createEvent("MouseEvents");
click_ev.initEvent("click", true, true);
document.getElementById("id_of_elem").dispatchEvent(click_ev);

我已经试过了

$("#id_of_elem").click();

window.location.href('link');

但他们没有锻炼。

请帮帮我

【问题讨论】:

原来是浏览器首选项,可以在编辑 -> 首选项 -> 选项卡下进行编辑,然后在下拉菜单中选择自动选项以选项卡而不是窗口打开页面。 ***.com/questions/13636776/… 感谢您的评论,但我在 iPhone 上收到此错误。 你本可以完成$("#id_of_elem").click() 不行,不行(我已经试过了) @Goldy 你检查过链接吗? 【参考方案1】:

在没有用户点击的情况下自己在新标签页或新窗口中打开链接是不可能的,浏览器会阻止弹出窗口滥用。您可以等待用户单击“下载 PDF”(使用类似这样的内容:&lt;a href='/doc.pdf' download target='_blank'&gt;Download the PDF&lt;/a&gt;),也可以删除 "target=_blank",然后弹出窗口阻止程序不会阻止下载(这将导致导航离开但是,您的页面。)

【讨论】:

感谢您的回答。我面临的问题是,下载 pdf 的链接在页面加载时不可用,当用户单击“获取 pdf”时,一个唯一的链接来自 Ajax 调用。所以我需要相同的链接在 iPhone/iPad 的新标签页中打开,否则它可以在任何其他平台上运行。 @Goldy 我不确定你在说什么,但听起来你可能没有将 JS 代码包装在 addEventListener('load', function() /*your code here*/ ); 中?

以上是关于使用 Javascript/jQuery 在 iOS 10.3.3 (safari) 中打开一个新选项卡的主要内容,如果未能解决你的问题,请参考以下文章

使用 Javascript/JQuery 为移动网络(Android、iOS、Windows Phone)突出显示/选择元素上的文本

如何在 javascript/jquery 中发出 ajax 请求

需要使用javascript识别iOS编辑键盘中的“完成”按钮单击

如何在 Javascript 中为 iOS 和 Android 创建可靠的指南针?

地理位置始终显示莫斯科 Javascript/JQuery/JSON(开放天气 API)

如何使用 Javascript/JQuery 在移动浏览器中限制点运算符('.')