使用JS以编程方式在Safari中打开一个新选项卡

问题描述 投票:1回答:1

我正在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>

将无法工作,我需要以编程方式打开此选项卡,我已尝试上述功能无济于事。此问题使我们的应用程序无法在Apple智能手机和平板电脑上打开文件。更糟糕的是,Safari甚至没有通知用户“弹出窗口”已被阻止,因此我们的用户很容易认为此功能已被破坏,而实际上它可以在其他浏览器中使用。

如何在Safari中的新选项卡中打开任何链接/文件?

javascript safari mobile-safari
1个回答
1
投票

这可能会有所帮助。

window.open(url, '_blank'); not working on iMac/Safari

(我会将此作为评论分享,但还没有足够的代表。)

© www.soinside.com 2019 - 2024. All rights reserved.