Office.js Word - window.external.RegisterEvent不是函数

Cra*_*ley 10 ms-office word-addins office-js

我正在开发一个Word 2016 Addin,我收到了一个客户端(通过Sentry记录)的错误,我在复制时遇到了麻烦.它发生在Word 16.11中macOS Sierra 10.12.6上的Dialog窗口中.

window.external.RegisterEvent is not a function.
(In 'window.external.RegisterEvent(n,t,i,r)', 'window.external.RegisterEvent' is undefined)
Run Code Online (Sandbox Code Playgroud)

该错误源于单词API脚本https://appsforoffice.microsoft.com/lib/1/hosted/word-mac-16.00.js并查看Github上的调试代码,它似乎来自这一行.

有没有人知道为什么会这样?它没有发生在任何其他平台上,我在本地复制它时遇到了麻烦.

提前致谢.如果需要,我很乐意提供更多信息.

注意:在Addin提交审核过程中发生此错误导致提交失败 - 因此需要跟踪来源.

Bar*_*maz 4

我在这里报告了这个问题https://github.com/OfficeDev/office-js/issues/97,它与对话框 API 相关。Mac 上的对话框中似乎缺少 window.external.registerEvent。我可以使用以下 hack 来修复它,该 hack 应在 office.js 之后调用。也许你也有同样的问题。

const isMac = !!navigator.platform && 
navigator.platform.toUpperCase().indexOf('MAC') >= 0;

if (isMac && window.external && !window.external.RegisterEvent) {
    window.external.RegisterEvent = () => { };
}
Run Code Online (Sandbox Code Playgroud)