业务场景是,
从服务端以字符串的形式取回 一个页面的整个html代码,在当前页面上展示,
当然就想到了iframe
iframe要事先存在与dom树中
而不是用createElement方法增加
整个替换<html>
标签,而不只是body
直接上代码,不bb
const iframe = document.getElementsByClassName('placeholder')[0]
const iframedoc = iframe.contentDocument || iframe.contentWindow.document;
iframedoc.children[0].innerHTML = html // 事先拿到的html
// 这个children[0]就是<html>标签
iframe中的页面无法自动执行javascript
无法触发iframe的onload方法,
但是有代替方法,可以满足部分需求,
在父页面,通过上文的iframedoc
——也就是子页面的document
,来操作子页面里的dom