用 document.currentScript 实现轻量内联渲染
在 HTML 中插入动态文本,不一定要先查找目标元素。借助 document.currentScript,内联脚本可以直接找到自身,再用计算结果替换自己的 <script> 节点。
让脚本用当前年份替换自身
例如,在页面中写入:
今年是 <script>document.currentScript.replaceWith(new Date().getFullYear())</script> 年。
脚本执行时,new Date().getFullYear() 获取当前年份,replaceWith() 则将当前脚本节点替换为对应的文本。这样,动态内容就会出现在脚本所在的位置。
封装成一个简短函数
先定义一个快捷函数:
const $ = (...n) => document.currentScript.replaceWith(...n);
之后就可以这样写:
今年是 <script>$(new Date().getFullYear())</script> 年。
这相当于一种微型模板写法:在需要动态内容的位置嵌入脚本,由脚本将自己替换为输出结果。
注意执行时机
这种写法依赖脚本执行期间的 document.currentScript,适用于同步执行的普通内联脚本。不要直接将它用于模块脚本,或依赖它在异步回调中定位脚本节点。
浏览(2)
