LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

通过innerHTML将script标签插入到父页面执行,报错未定义,如何解决?

freeflydom
2026年7月3日 9:19 本文热度 58
:通过innerHTML将script标签插入到父页面执行,报错未定义,如何解决?


这个报错是必然的,因为通过 innerHTML 插入到父页面的 <script> 标签,浏览器不会执行其中的代码(这是 HTML 规范的安全机制,防止 XSS 攻击)。浏览器只会把它当成普通文本节点解析,函数根本不会被注册到 window 上,所以调用时提示 not defined

针对你的场景(从 iframe 内部操作父页面),推荐:


​直接在父窗口对象上挂载函数

既然子页面本身就可以访问 parent,完全没必要把 <script> 字符串刷到父页面 DOM 里。直接在子页面的 JS 中把函数挂载到父页面的 window 上即可。

html
<!DOCTYPE html>
<!-- 这是子页面内的代码 -->
<script>
  // 直接定义在父窗口的全局对象上(同源策略下有效)
  parent.go_url = function(page) {
  };
  // 定义完成后可以直接调用测试(此时父页面就能识别了)
  // 如果需要立即执行,直接 parent.go_url('1');
</script>

这样父页面无需任何 innerHTML 操作,直接调用 go_url('1') 就能生效,且没有跨域问题(同源下)。


该文章在 2026/7/3 9:20:04 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-1  粤公网安备44030602007207号