【问题标题】:Pop-up blocked error when opening url from outlook webaddin从 Outlook Webaddin 打开 url 时弹出阻止错误
【发布时间】:2018-03-15 16:26:45
【问题描述】:

当用户单击插件视图中的按钮时,我正在尝试打开 url。但是网络插件抛出错误。

我打开网址的代码:

let a = document.createElement("a");
a.setAttribute('target', '_blank');
a.setAttribute("style", "display: none");
document.body.appendChild(a);
a.href = finalUrl;
a.click();
document.body.removeChild(a);

错误信息:

由于此错误,应用被商店拒绝。我该如何克服这个错误?

我不想使用不会在浏览器中打开 url 的 Dialogue API。

【问题讨论】:

    标签: office-js outlook-web-addins


    【解决方案1】:

    一般规则是,如果不是用户操作的直接结果,打开窗口将始终被阻止。有关详细信息,请参阅此 SO 问题:Avoid browser popup blockers。

    您正在触发一个弹出窗口,因为您试图模拟 click()。由于这不是直接的用户操作,因此该操作将被所有主流浏览器标记。

    您需要向用户展示可打开一个新窗口的可点击元素(链接、按钮等)。

    【讨论】:

    • 这里渲染的时候没有url。当用户单击按钮时,我会动态生成 amazon s3 url 并打开它。处理这种情况的解决方法是什么?
    • 您应该生成URI 并在该按钮的单击事件处理程序中调用window.open。当您将该调用置于调用堆栈的更深处时,您与阻止程序发生冲突的地方。另一种方法是让用户单击按钮,然后在 URI 准备好时向他们显示另一个按钮。
    猜你喜欢
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 2018-11-21
    • 1970-01-01
    • 2014-03-14
    • 2010-11-05
    相关资源
    最近更新 更多