继承base.html的子模板如何调用父模板中定义的format函数
子模板调用父模板定义的JS函数方法
只要保证base.html中的format函数加载时机早于review_result.html中调用代码的执行时机,即可直接正常调用,具体适配不同加载场景的操作如下:
- 若
base.html的公共JS函数统一写在<head>的<script>标签内,或写在body块的最顶部,且子模板的内容区块在父模板JS定义的下方
直接在review_result.html的脚本中按常规写法调用format(入参)即可,父模板加载完成后format已经注册为全局函数,子模板执行代码时可以直接访问。 - 若
base.html的JS函数统一放在body末尾(性能优化的常规写法,避免阻塞DOM渲染)
需要将子模板的调用逻辑放在DOM加载完成的回调中,确保父模板的JS已经加载执行完毕:// review_result.html 的script标签内示例代码 document.addEventListener('DOMContentLoaded', function() { // 此处可正常调用父模板定义的format函数 const formattedContent = format(你的参数); })
注意事项:
- 不要把
format函数定义在base.html的私有作用域内,要保证它是全局作用域函数,不要包裹在未对外暴露的闭包、立即执行函数内部,否则子模板无法访问。- 如果父模板用了模块化JS写法,需要手动将
format挂载到全局window对象上暴露:window.format = format,完成后子模板就可以正常调用。
内容的提问来源于stack exchange,提问作者TritonKid
相关产品推荐
相关产品推荐

