//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); } });
添加回答
举报
0/150
提交
取消