MS Word 在线插件:如何检测焦点?
MS Word Online add-in: How to detect focus?
在开发 Microsoft Word Online 插件时,我的团队需要检测文档 gained/regained 的焦点(ETA:触发依赖于此知识的其他功能)。在这种情况下,Microsoft 似乎已经严格锁定了可编写脚本的能力——所有 window.on* 函数都被 null 替换,所有错误处理代码都被深度混淆,等等。到目前为止,我们的努力一直受挫。
简单地将 window.on焦点设置到一个新函数会导致加载项无法正确加载,可能是因为它触发了代码分析器,因为它不安全,但很难判断。
Microsoft Word Online JavaScript API 中也没有任何内容直接提供此功能。脚本可以使用提供的方法轻松检测文档选择何时更改,但这似乎与此区域的文档功能有关。 (显然简单地感知文件变化是行不通的。)
在这种情况下,检测文档 and/or window 焦点的最佳方法是什么?谢谢。
document.onvisibilitychange 事件可用作所需功能的粗略近似值。
document.onvisibilitychange = (ev) => {
if (document.visibilityState == "visible") {
// Handle pseudo-focus event
}
else {
// Handle pseudo-blur event
}
};
这可以根据需要与 Office Online API DocumentSelectionChanged 事件结合使用,以进一步细化以感知何时将光标放置在 Word 文档中。 (也就是说,仅当浏览器 document.onvisibilitychange 事件触发且 document.visibilityState 等于“可见”后第一次触发 Office DocumentSelectionChanged 事件时才触发焦点获得逻辑。)
在开发 Microsoft Word Online 插件时,我的团队需要检测文档 gained/regained 的焦点(ETA:触发依赖于此知识的其他功能)。在这种情况下,Microsoft 似乎已经严格锁定了可编写脚本的能力——所有 window.on* 函数都被 null 替换,所有错误处理代码都被深度混淆,等等。到目前为止,我们的努力一直受挫。
简单地将 window.on焦点设置到一个新函数会导致加载项无法正确加载,可能是因为它触发了代码分析器,因为它不安全,但很难判断。
Microsoft Word Online JavaScript API 中也没有任何内容直接提供此功能。脚本可以使用提供的方法轻松检测文档选择何时更改,但这似乎与此区域的文档功能有关。 (显然简单地感知文件变化是行不通的。)
在这种情况下,检测文档 and/or window 焦点的最佳方法是什么?谢谢。
document.onvisibilitychange 事件可用作所需功能的粗略近似值。
document.onvisibilitychange = (ev) => {
if (document.visibilityState == "visible") {
// Handle pseudo-focus event
}
else {
// Handle pseudo-blur event
}
};
这可以根据需要与 Office Online API DocumentSelectionChanged 事件结合使用,以进一步细化以感知何时将光标放置在 Word 文档中。 (也就是说,仅当浏览器 document.onvisibilitychange 事件触发且 document.visibilityState 等于“可见”后第一次触发 Office DocumentSelectionChanged 事件时才触发焦点获得逻辑。)