Google Sheets中SweetAlert2因TrustedHTML限制无法运行求助
Google Sheets中SweetAlert2适配TrustedTypes的问题修复求助
原本在Google Sheets中运行正常的SweetAlert2脚本,自Google启用TrustedScriptURL/TrustedHTML安全要求后无法正常工作。我尝试了两种代码方案,均未解决问题:
方案一
const createPolicy = trustedTypes.createPolicy("forceInner", { createHTML: (string) => string, createScriptURL: (string) => string, }); const script = document.createElement("script"); script.setAttribute("type", "text/javascript"); script.src = createPolicy.createScriptURL( "https://cdn.jsdelivr.net/npm/sweetalert2@11.7.32/dist/sweetalert2.js" ); document.head.appendChild(script);
方案二
let createPolicy = trustedTypes.createPolicy("forceInner", { createHTML: (string) => string, createScriptURL: (string) => string, }); let script = document.createElement("script"); script.setAttribute("type", "text/javascript"); script.src = createPolicy.createScriptURL( "https://cdn.jsdelivr.net/npm/sweetalert2@11.7.32/dist/sweetalert2.js" ); document.head.appendChild(script); script.setAttribute("type", "text/javascript"); script.src = createPolicy.createScriptURL( "https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js" ); document.head.appendChild(script); createPolicy = trustedTypes.createPolicy("forceInner", { createHTML: (string) => DOMPurify.sanitize(string, {RETURN_TRUSTED_TYPE: true}), createScriptURL: (string) => DOMPurify.sanitize(string, {RETURN_TRUSTED_TYPE: true}), createScript: (string) => DOMPurify.sanitize(string, {RETURN_TRUSTED_TYPE: true}) });
测试方式
尝试过两种测试代码:
- 直接调用:
Swal.fire() - 通过脚本注入调用:
script = document.createElement("script"); script.setAttribute("type", "text/javascript"); script.innerText = createPolicy.createScript("Swal.fire('Hello World')"); document.head.appendChild(script);
无论使用哪种方案或测试方式,都会因加载的sweetalert2.js触发TrustedHTML相关错误(已使用未压缩版本排查问题),恳请协助修复该脚本。
内容的提问来源于stack exchange,提问作者UserNewObject
相关产品推荐
相关产品推荐

