office-js - Cookie 不在 Excel 网页版中的任务 Pane 和自定义函数之间共享

标签 office-js office-addins excel-addins custom-functions-excel

将 Excel 加载项部署到 Web 时,我在自定义函数和任务 Pane 之间共享 cookie 时遇到问题。我关注了这个guide在任务 Pane 和自定义函数之间共享运行时和 cookie。我在离线 Excel 中(Mac 和 Window 中)进行了测试,效果很好。但是,当我在 Web 上旁加载该函数时,任务 Pane 会作为 Web 内的 iframe 加载,因此任务 Pane 和自定义函数具有不同的运行时和 cookie。没有错误消息,它们只是不再共享运行时,这弄乱了我的自定义函数,该函数使用用户从任务 Pane 输入的 cookie 来验证它们。

我的目标受众不是在网络上使用 Excel 的人,但这是将加载项发布到 Appsource 的验证过程的一部分,因此我需要找到一种方法使其也可以在网络上运行。感谢任何帮助。

最佳答案

此问题是由网络浏览器的新安全功能引起的。第三方cookie被该功能屏蔽,导致iframe无法读取cookie。您可以尝试以下方法来解决:

对于 Edge/Chrome,将 SameSite=NoneSecure 设置添加到 cookie,例如

document.cookie="...your cookie;SameSite=None; Secure"

对于 Safari,请参阅此文档:Develop your Office Add-in to work with ITP when using third-party cookies

此外,Web Storage API与 Excel Online 中的共享运行时配合良好。如果您将 Cookie 用于身份验证以外的目的,请考虑在您的场景中使用 localStorage

谢谢

润东

关于office-js - Cookie 不在 Excel 网页版中的任务 Pane 和自定义函数之间共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70841486/

相关文章:

office-js - 如何检查文档是否为空?

javascript - Office-js:如何使用 Outlook Web 插件自动回复?

javascript - MS Word API : Set table values loaded async

javascript - 如何使用 office-js 在 Outlook 中插入嵌入图像

javascript - 从 Javascript 插件控制 Word 文档中的选择范围

javascript - 在 Outlook 365 加载项中捕获 "onChange"事件

office-addins - Office.context.mailbox.item.body.getAsync() 方法在 Outlook mac 2016 中不起作用

c# - 检测 xll 是否已永久安装或 xll 文件是否只是临时打开?

c# - VSTO 加载项 : Reference in the manifest does not match the identity of the downloaded assembly

excel - VBA打印所有COM插件