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

10

我正在开发一个Word 2016插件,并收到了客户的错误报告(通过Sentry记录)。但我无法复现这个问题。这个错误发生在macOS Sierra 10.12.6上的Word 16.11中的对话框窗口中。

window.external.RegisterEvent is not a function.
(In 'window.external.RegisterEvent(n,t,i,r)', 'window.external.RegisterEvent' is undefined)

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

有没有人了解为什么会发生这种情况? 它在其他任何平台上都没有发生,并且我无法在本地重现它。

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

注意: 此错误发生在插件提交审核过程中导致提交失败-因此需要追踪源头。


没有想法吗?如果有其他有用的信息,请告诉我。 - Craig Sketchley
1个回答

4

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

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

if (isMac && window.external && !window.external.RegisterEvent) {
    window.external.RegisterEvent = () => { };
}

谢谢Baris,感谢您的回复。我会尝试您的解决方案。 - Craig Sketchley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接