在 Outlook Web 插件中,我调用 Office JS API 的
displayNewMessageFormAsync
方法来显示用于创建电子邮件的新表单,并使用给定的电子邮件地址填写电子邮件。但是在 Safari 和 Firefox 上,如果我不允许弹出窗口,这些浏览器将阻止打开这个新表单。另一方面,在 Chrome 中,它会打开新表单,但不会在浏览器中明确允许弹出窗口。
我的代码:
private addRecipientToNewMail(recipient: string): void {
this.mailbox.displayNewMessageFormAsync({ toRecipients: [recipient] },
(result: Office.AsyncResult<void>) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.log(result.error);
}
});
}
有趣的是,如果我在设置
displayNewMessageFormAsync
属性的地方调用带有 parameters
参数的 htmlBody
方法,那么在 Firefox 上将显示新表单,而不允许显式弹出窗口,代码示例:
this.mailbox.displayNewMessageFormAsync({ htmlBody: `<h1>Test</h1>` },
(result: Office.AsyncResult<void>) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.log(result.error);
}
});
经过测试的浏览器:
我想有一个解决这个问题的方法,可以直接打开新的电子邮件表单,而无需在浏览器中手动启用弹出窗口。