跟踪预防阻止了对 https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js 存储的访问

问题描述 投票:0回答:2

我大约一年半前使用 OfficeJS API 编写了一个 Excel 加载项,它一直工作到大约两周前。 Excel 似乎已经进行了更新,现在我可以右键单击任务窗格并查看开发工具,而以前我无法执行此操作,必须运行外部 MS Edge 开发工具应用程序进行调试。这似乎是一个相对较新的问题,我似乎找不到任何有关它的信息。我尝试将 MS Edge 的跟踪预防设置减少为基本设置,如下所示:

我向 appsforoffice.microsoft.com 授予了 javascript 权限,因为 devtools 说它在控制台中专门阻止此文件https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js。我还只包含了 microsoft.com 以及该公司的 URL 和 cdn url。我还添加了 localhost,因为这也在我的计算机本地发生。我似乎无法专门更改 Excel 中的任何阻止设置,但我的假设是 Excel 为加载项运行 Edge 实例,因为我可以在 Edge devtools 中跟踪它。

我阅读了此处找到的文章https://learn.microsoft.com/en-us/microsoft-edge/web-platform/tracking-prevention,以了解我可以更改什么,但这里的解决方案都不起作用为我。看起来 Edge 的设置几乎没有被读入 Excel,因此它总是阻止任何尝试从 localStorage/sessionStorage 读取数据的应用程序。

我在加载项中使用 sessionStorage 来写入数据以进行读回,并尝试了 localStorage,但我仍然遇到相同的错误。

更奇怪的是,我尝试读出的数据来自我写入存储的数据,当我查看 devtools 中的存储选项卡时可以看到它的写入没有问题,因此问题仅限于读取从存储中。

有谁知道需要在哪里对跟踪进行更改,以便 Excel 加载项能够从存储中读取这些更改(如果这些更改未从 MS Edge 更新,或者如果 Excel 发布了新错误)最近?

编辑:为了更清楚地了解确切的问题,我的添加基本上从单元格中读取文本和值,并根据我为用户定义的标签,这些值将在包含用户想要的标签的 HTML 元素中输出来生成。例如,当用户想要一个段落时,他们可以使用 /para 和 /end para 标记单元格,并且其间的行/单元格中的任何文本和值都将在 HTML 段落标记中输出。他们还可以构建这样的 HTML 表格。在读取文本和值的过程中,这一切都会构建成一个名为

previewString
的字符串,我将其存储在 sessionStorage 中,以便可以打开对话框窗口并从 sessionStorage 中读取
previewString
,这将是用户想要的完整 HTML来生成。所有这些现在已经工作了大约一年半,但现在当尝试生成 HTML 时,我可以看到该字符串存储在 sessionStorage 中,如下面的屏幕截图所示:

但是,当对话框窗口打开时,数据不在 sessionStorage 中,因此无法读取,并且仍然出现错误 Tracking Prevention Blocked access to storage for https://appsforoffice.microsoft.com/lib/1.1 /hosted/office.js 以及权限被拒绝错误。

previewString
在此对话框的 sessionStorage 选项卡中不可用

第二次编辑:我搜索了控制台给出的错误代码

OSF.DDA.ERROR code 7000, permission denied
,并在 SO Office JS Api - Permission Denied Issue 上找到了这篇文章。这似乎是过去的一个错误,但我不确定是否再次出现这种情况。

javascript office-js excel-addins session-storage
2个回答
0
投票

最近,我也遇到了同样的问题,我收到了

OSF.DDA.ERROR
和“跟踪预防阻止了对存储的访问”错误。

在我的代码中添加

setTimeout(function(){},1000)
并在其中写入我的 Office 特定代码后,我能够解决该问题。

添加

setTimeout()
帮助我解决了这个问题。我也尝试过
Office.onReady
,但这对我不起作用。

它正在尝试在完全加载之前访问 Office 特定功能。


0
投票

错误消息表明跟踪预防阻止了对属于跟踪器的 URL 的存储访问。

可能的解决方案:要修复此错误,您可以将跟踪预防级别更改为“基本”,这允许大多数跟踪器以及个性化内容和广告的跟踪器,或者将 URL 添加到例外列表中,这允许特定网站的存储访问。或者,如果错误不影响页面的功能,您可以忽略该错误。

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