为了账号安全,请及时绑定邮箱和手机立即绑定

使用cors跨域取到相关的html片段后,html里的js失效了怎么还原?

使用cors跨域取到相关的html片段后,html里的js失效了怎么还原?

有只小跳蛙 2018-10-17 13:15:44
//js:fetch('http://localhost:8000/cors', { // 目前的端口号是5000,也是localhost,跨域端口号是8000         mode: 'cors'     })         .then(res => res.text())         .then(data => {            console.log(data);            document.body.innerHTML += data;         })         .then(err => console.log(err));//取到的HTML片段//cors.jslet btn = document.querySelector('input[type=button]'); btn.onclick = function () {    let div = document.createElement('div');     div.classList.add('box');    document.body.append(div);    console.log(div) };页面样式和DOM结构出来了,但是js却不生效,有什么办法还原获取到的html原本的js吗?
查看完整描述

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

浏览器的安全策略限制,innerHTML 中的script是不会执行的。

你需要手动把script标签分离出来,单独createElement一个script出来。

试试innerHtml后加个这个

data.replace(/\<script src=\"(.*?)\"\>\<\/script\>/g, function(a, v) {  if (v) {    var s = document.createElement('script');
    s.src = v;
    document.body.append(s);
  }
});


查看完整回答
反对 回复 2018-11-01
  • 1 回答
  • 0 关注
  • 810 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信