我正在 Ember.js 平台上进行开发,该平台带有用于上传文件的 Microsoft Azure 数据库。由于这些文件的内容是敏感的,我们依靠 Azure 的安全访问 api 来允许我们的用户查看文件大约 2 分钟,然后使访问链接过期。此安全访问链接作为 response.fileURL
返回到我的应用程序。
问题是我需要在新选项卡中打开此链接,到目前为止,我尝试过的方法适用于除 Safari 之外的所有浏览器。
现在,在搜索“以编程方式在 safari 上打开新选项卡”一段时间后,到目前为止我在网上找到的每个结果(例如,http://whoknew.dk/programmatically-opening-a-new-tab-window-on-mobile-safari-55.htm)都有一个对以下代码有一些解释的实现:
function openURL(){
var a = window.document.createElement("a");
a.target = '_blank';
a.href = response.fileURL;
// 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);
e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
a.dispatchEvent(e);
}
openURL();
因为简单
<a target="_blank" href='link.com'>link</a>
不会工作,无论如何我都需要以编程方式打开此选项卡,我已尝试上述功能无济于事。这个问题使我们的应用程序无法在苹果智能手机和平板电脑上打开文件。更糟糕的是,Safari 甚至没有通知用户“弹出窗口”被阻止,所以我们的用户简单地认为这个功能被破坏了,而实际上它在其他浏览器中是有效的。
如何在 Safari 的新标签页中打开任何链接/文件?
最佳答案
关于javascript - 使用 JS 以编程方式在 Safari 中打开一个新选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37353908/