小鱼塘--自说自话的地方

  • 小玩意
  • 小想法
记录自己技术和想法地方
  1. 首页
  2. html
  3. 正文

interHtml不执行script

13 12 月, 2020 1459点热度 0人点赞 0条评论
内容目录

背景

在html单页面想动态加载html,但设置interHtml发现默认<script></script>不能执行,然后google了一下

interheml 设置的内容会当成普通文本,不会执行里面的Js

解决方案

我们设置的动态设置的元素,可以动态创建script 替换原来的script就可以触发执行

代码

function createNewElementFromOld(elm, tag){
    Array.from(elm.querySelectorAll(tag)).forEach( oldEle => {
        const newScript = document.createElement(tag);
        Array.from(oldEle.attributes)
          .forEach( attr => newScript.setAttribute(attr.name, attr.value) );
        newScript.appendChild(document.createTextNode(oldEle.innerHTML));
        oldEle.parentNode.replaceChild(newScript, oldEle);
      });
}

var setInnerHTML = function(elm, html) {
    elm.innerHTML = html;
    createNewElementFromOld(elm, "script");
  }

标签: 暂无
最后更新:14 12 月, 2020

小鱼儿

爱研究技术,爱玩LOL

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 小鱼塘. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

湘ICP备18005349号