当前位置:编程学习 > JAVA >>

关于通过innerHTML插入样式的问题

在js代码中,通过innerHTML加入一段页面,代码如下:

\

运行后,发现在ie下,页面style中的样式没有被解析,页面展现不对,而在ff下展现正常。 请教了高手,再阅读 http://www.gold98.net/article.asp?id=897,发现原来在使用innerHTML或insertAdjacentHTML的时候,如果插入的html代码的开头有noscope元素(包括script,style,注释)的时候,ie会自动将开头的noscope元素去掉。 如果要解决这个问题,可以有两种方法:

1) 内容前面加一个scope的元素(如div,如下)

\

注:display为none的设置基本上可以被所有浏览器识别,参见 http://www.w3help.org/zh-cn/causes/RM8001,但ie6以下的ie没有深究

2) 将css提出来再添加到样式表里

接下来,我们试一试下面的代码

\

 发现同样在ie下,这里展现也不对,页面中的style也没有生效,比较奇怪的是这里是以开头,而非noscope元素,于是对代码进行了以下修改

这样是可以正常展现的,如此看来,这里ie在识别开头元素的时候,并不是表面的写在前面的标签,而是解析后的第一个完整的元素。

\

\

参考资料:

http://www.zzzyk.com/kf/201202/118248.html

http://www.w3help.org/zh-cn/causes/RM8001

摘自 编码者说

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,