项目偶尔会遇到使用innerHTML对元素内容进行赋值导致注册的事件失效或元素对象无法找到等问题,在这里总结innerHTML自身的一些问题
1、当innerHTML中包含javascript代码,需在defer关键字,如<script defer>…</script>,否则无法执行。这种方法有一定的危险性,处理不当,容易引起脚本注入攻击。
2、设置innerHTML将会破坏现有的已注册了事件处理函数的HTML元素,会在某些浏览器上引起内存泄露的潜在危险
3、innerHTML会破坏dom的结构,无法得到刚刚创建的元素的引用,需要你手动添加代码才能取得那些引用
4、你不能在所有浏览器的所有HTML元素上设置innerHTML属性(比如,IE不允许你在表格的行元素上设置innerHTML 属性)