Javascript 我想在调用Office.context.ui.displayDialogAsync()方法时跳过显示消息

Javascript 我想在调用Office.context.ui.displayDialogAsync()方法时跳过显示消息,javascript,outlook,office365,office-js,Javascript,Outlook,Office365,Office Js,我正在编写Outlook加载项 我想使用displayDialogAsync()显示一条对话框消息 但当我使用该方法时,在显示对话框之前会显示确认消息(我附上了一个屏幕截图) 是否有跳过此邮件的解决方案 ・参考文献 该消息对于防止弹出窗口阻止程序是必需的。所以,如果你使用弹出模式,没有办法跳过它。但是,如果页面支持iframing,则可以传递displayAsIframe=true参数(请参阅);此模式不显示额外确认,因为它显示为带有Iframe的浮动div(与新窗口相反) 重要提示:我看到

我正在编写Outlook加载项

我想使用
displayDialogAsync()
显示一条对话框消息

但当我使用该方法时,在显示对话框之前会显示确认消息(我附上了一个屏幕截图)

是否有跳过此邮件的解决方案

・参考文献


该消息对于防止弹出窗口阻止程序是必需的。所以,如果你使用弹出模式,没有办法跳过它。但是,如果页面支持iframing,则可以传递displayAsIframe=true参数(请参阅);此模式不显示额外确认,因为它显示为带有Iframe的浮动div(与新窗口相反)


重要提示:我看到您正在Office Online中使用API。请注意,我们还没有正式更新我们的文档和样本,以说明它是受支持的,因此您可能会看到一些颠簸。我预计到明年初一切都会就绪

在Outlook Web Access中,使用
window.open()
而不是对话框API。这将允许您在不显示此对话框的情况下启动子窗口。不过,有一些警告:

  • 正在启动的窗口的URL必须与外接程序属于同一域。否则,您可能会看到弹出的阻止警告

  • 如果用户操作未直接调用
    window.open()
    ,Firefox将显示弹出阻止警告。如果外接程序的用户可能正在使用Firefox,只需确保在启动新窗口时,您直接在
    onClick
    处理程序或其他程序中进行操作,而不是通过
    Promise
    或异步回调

  • 在Outlook桌面应用程序中,对话框API按预期工作,事实上,使用
    window.open()
    将始终触发弹出阻止警告

    我们的外接程序具有与以下类似的逻辑:

    function launchDialog(url) {
      if (/WebApp/.test(Office.context.mailbox.diagnostics.hostName)) {
        window.open(url);
      } else {
        Office.context.ui.displayDialogAsync(url);
      }
    }
    

    希望这有帮助

    谢谢你的编辑。谢谢你的评论。
    function launchDialog(url) {
      if (/WebApp/.test(Office.context.mailbox.diagnostics.hostName)) {
        window.open(url);
      } else {
        Office.context.ui.displayDialogAsync(url);
      }
    }