javascripy的innerHTML在IE8下的异常

使用jQuery的datatable插件的时候发现,IE8下显示异常,仔细调查一番,发现是浏览器对innerHTML的差异导致的。

实例代码:

	var nTd = document.createElement('td');
	nTd.innerHTML = 'abc&def';
	alert(nTd.innerHTML);

  IE8 alert结果: abc

  firefox 24 alert结果:abc&def

可以看出,当把字符串传给innerHTML的时候,浏览器进行了处理,比如大小写转换,对于'<span>abc</SPAN>':

  IE8 alert结果: <SPAN>abc</SPAN>

  firefox 24 alert结果:<span>abc</span

对于'<span>abc&def</SPAN>':

  IE8 alert结果: <SPAN>abc&amp;def</SPAN>

  firefox 24 alert结果:<span>abc&amp;def</span

对于'<span>abc&amp;def</SPAN>':结果同上

  IE8 alert结果: <SPAN>abc&amp;def</SPAN>

  firefox 24 alert结果:<span>abc&amp;def</span

结论:

可以认为这是一个bug,在对字符串进行处理的时候,IE8做的有问题。可以对存入datatable表格中的数据做HTML escape处理,可以避免这个bug。

具体权威一点的解释还没有找到,如果谁知道,欢迎留言!

原文地址:https://www.cnblogs.com/fanxiaopeng/p/3680310.html