You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel加载项打开任务窗格时Shared Runtime未加载问题求助

问题

开发的Excel加载项包含任务窗格、自定义函数及对话框,采用Shared Runtime,其URL和任务窗格打开的页面一致。本来是在Shared Runtime/任务窗格页面的document ready事件里根据设置启用/禁用功能区按钮,但调用自定义函数或打开对话框时功能区控件都正常,唯独打开任务窗格时会报错RichApi.Error: The Sharedruntime ID is missing。推测是Shared Runtime还没加载完,想问有没有办法主动加载Shared Runtime,或者有没有靠谱的事件能确认任务窗格里的Shared Runtime已经加载完成?

配置代码如下:

<Runtimes>
    <Runtime resid="SharedRuntime.Url" lifetime="long" />
</Runtimes>

<DefaultSettings>
    <SourceLocation DefaultValue="~remoteAppUrl/Src/Login/login.html" />
</DefaultSettings>

<bt:Url id="SharedRuntime.Url" DefaultValue="~remoteAppUrl/Src/Login/login.html" />
解决方案
  • 放弃document ready,用Office.js自带的初始化事件
    Office.onReady()是确认Office加载环境(包括Shared Runtime)就绪的可靠事件,直接用它替代document ready来处理功能区按钮的状态调整。示例代码:
    Office.onReady(info => {
      if (info.host === Office.HostType.Excel) {
        // 这里写启用/禁用功能区按钮的逻辑
        Office.ribbon.requestUpdate({
          tabs: [
            {
              id: "你的选项卡ID",
              groups: [
                {
                  id: "你的组ID",
                  controls: [
                    { id: "你的按钮ID", enabled: true } // 根据实际设置改状态
                  ]
                }
              ]
            }
          ]
        });
      }
    });
    
  • 检查Shared Runtime配置的完整性
    确认清单里的配置没有遗漏:
    1. 确保<Runtime>节点的resid指向的URL和任务窗格的SourceLocation完全一致(你的配置里已经符合,但要注意实际部署的路径不能有差异)
    2. 清单的<Permissions>节点要设置合适的权限,比如ReadWriteDocument,避免权限问题导致Runtime加载异常
  • 备选:手动触发Runtime初始化
    如果Office.onReady()偶尔还是有延迟,可以试试在任务窗格加载后调用Office.context.runtime.initialize(),不过这个方法一般作为应急方案,优先用Office.onReady()更稳妥

内容的提问来源于stack exchange,提问作者Kashif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 09:09:22