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

开发Outlook Add-In遇TrustedScript赋值错误,求解决方案

解决Outlook Add-In中的"This document requires TrustedScript assignment"错误

这个错误是因为Outlook Add-In的运行环境强制启用了Trusted Types安全机制——它不仅要求HTML内容是TrustedHTML类型,如果代码里存在动态插入脚本、设置script.src或使用动态执行脚本的方法(比如eval),还必须用TrustedScript类型来赋值。你当前的Trusted Types政策里createScript只是直接返回字符串,不符合安全要求,所以触发了错误。

修复步骤:

  1. 完善Trusted Types政策,严格处理脚本相关操作
    不要直接返回字符串,要对脚本内容/URL做可信校验,并且用TrustedScript类型包装(环境支持的前提下)。示例代码:

    if (window.trustedTypes && window.trustedTypes.createPolicy) { 
      window.trustedTypes.createPolicy('default', {
        createHTML: (string) => DOMPurify.sanitize(string, { 
          RETURN_TRUSTED_TYPE: true
        }),
        createScriptURL: (url) => {
          // 只允许从你的Add-In可信域名加载脚本
          const allowedOrigins = ['https://your-add-in-domain.com'];
          const urlObj = new URL(url);
          if (allowedOrigins.includes(urlObj.origin)) {
            return url;
          }
          throw new Error(`不可信的脚本URL: ${url}`);
        },
        createScript: (script) => {
          // 严格限制动态脚本内容,只允许预先定义的可信脚本
          const allowedScripts = ['console.log("合法脚本内容")'];
          if (allowedScripts.includes(script)) {
            return window.trustedTypes.createScript(script);
          }
          throw new Error(`不可信的脚本内容: ${script}`);
        },
      });
    }
    
  2. 排查代码中的动态脚本操作

    • 彻底避免使用eval()、new Function()这类动态执行脚本的方法
    • 不要动态设置<script>标签的src属性,除非能100%确认来源安全
    • 如果必须插入脚本内容,一定要先通过上面的Trusted Types政策处理
  3. 检查Add-In清单配置

    • 确认清单里的Permissions设置合理,不要申请不必要的权限
    • 确保Domains节点包含所有你需要加载资源的可信域名

如果你的代码里没有主动操作脚本,那可能是第三方库(包括DOMPurify)的内部逻辑触发了检查,此时可以排查第三方库是否兼容Trusted Types,或者调整DOMPurify的配置,确保它不会生成意外的脚本内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:42:34