火狐浏览器空的iframe操作dom不好使

如果向一个空的 iframe 直接执行

document.appendChild(document.createElement('div'))

会不好使,但是页面不会报错,没有警告

解决方案

监听 iframe onload 事件
再 onload 事件中执行 dom 操作比较安全

// win 是 iframe 的引用
const root = win.document.createElement("div");
win.onload = () => {
  win.document.appendChild(root);
};

参考链接 firefox 不好使

然而再 chrome 上 src 是 about:blank 就是不写 src 的 onload 不会被触发

兼容处理

检测浏览器版本这里用之前写的 is 库做处理is everything lib

这个看起来应该算是 chrome 的 bug