Office JS - 有没有办法验证清单文件中提到的功能是否已加载?

Office JS - is there a way to verify if the functions mentioned in the manifest file are loaded?

我呈现函数文件 html 的网络应用程序有一个网络过滤器,因此如果登录不成功,文件将不会呈现。现在,当我加载加载项时,所有按钮都会出现,但绑定到这些按钮的功能不会呈现。单击这些按钮会显示 "Excel is working on so & so (button name)" - 并且会永远保留。有没有办法了解那里发生了什么?还有,如果有异常,能不能一路抛回去?

"Excel is working on…" 出现在您的函数被调用的时间和 completed() 回调在您的函数接收到的事件上被调用的时间之间。如果您看到此通知停留时间过长,则表明您的函数正在被调用,但是:

  • 您的函数在完成时未调用 event.completed(),或者
  • 您的函数在调用 event.completed() 回调之前抛出异常。

对于以这种方式调用的函数,F12 Developer Tools 不会有太大帮助。执行函数的上下文根本没有足够长的时间来附加它。

我建议使用以下解决方案之一来解决此问题:

  1. 实现一个 任务窗格,其中包含一个按钮,可以触发您要测试的功能。启动该任务窗格,将 F12 开发人员工具附加到它,然后单击按钮。在这里,您可以监控控制台是否存在未捕获的异常,将 debugger 语句添加到您的代码中以进行调试等。

  2. 或... 将函数的内容包装在 try/catch 块中,并在 catch 块,将工作表中单元格的值设置为捕获的错误消息。

选项 2 可能会更快地为您提供所需的内容,但选项 1 会让您为以后对其他内容进行更彻底的调试做好准备。

希望对您有所帮助!