最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

addRule在firefox下的兼容写法_javascript技巧

来源:懂视网 责编:小采 时间:2020-11-27 20:33:55
文档

addRule在firefox下的兼容写法_javascript技巧

addRule在firefox下的兼容写法_javascript技巧:现在用脚本控制 html 元素样式的方法真的很多很多。 对单个元素可以直接 element.style.display=......修改一个样式,也可以 element.className=...修改它的多个样式。 对于多个元素修改样式可以用脚本直接 import css文件。 目前项目中有这么一
推荐度:
导读addRule在firefox下的兼容写法_javascript技巧:现在用脚本控制 html 元素样式的方法真的很多很多。 对单个元素可以直接 element.style.display=......修改一个样式,也可以 element.className=...修改它的多个样式。 对于多个元素修改样式可以用脚本直接 import css文件。 目前项目中有这么一

现在用脚本控制 html 元素样式的方法真的很多很多。
对单个元素可以直接 element.style.display=......修改一个样式,也可以 element.className=...修改它的多个样式。
对于多个元素修改样式可以用脚本直接 import css文件。
目前项目中有这么一个需求。 要求改变某 div下所有子孙结点的样式,但不改变div本身样式。
我当时想都没有想就留下了一下代码:
代码如下:



divdiv

spanspan

ttttt







这段代码一直工作得很好,直到有一天我同事告诉我,我的模块让他的浏览器崩溃了。

我打着手电筒,拿着放大镜在近两千多行的代码中找了又找。.
根本找不到问题出在哪里,而且当时对于上面的代码丝毫没有怀疑过。
我们div 的id 是从数据库里面直接读取的,为数字类型,比如 等等。
对于id 能取什么字符,我以前在 ie6和 ff1.5中测试过,
代码如下:


这样的id设置,都可以用
document.getElementById("阿舜")
document.getElementById("???"),
document.getElementById("-1"),

读出来不会有问题,更何况是纯数字呢.

最后经过反复调试,找到这个罪魁祸首 addRule.
document.styleSheets[0].addRule("#a1 *","background-color:red")
document.styleSheets[0].addRule("#123 *","background-color:red")
都没有任何问题
下面这行代码却会让ie死掉. 内存和虚拟内存一直暴涨,我512的内存,一下子xp就提示虚拟内存不够。
document.styleSheets[0].addRule("#-1 *","background-color:red");
同样,在 ff1.5中,将导致函数出错,但不会崩溃。
总结:
1。 ie,ff对 id 的取值相当宽容,id几乎可以是任何字符,中文,英文,字母,数字,负数,特殊字符
2。 但是 addRule 函数中, id为负数时,在 ie和ff都会失败,而且ie会崩溃。
附:
addRule在 ff中的兼容写法
代码如下:


divdiv

spanspan

ttttt





文档

addRule在firefox下的兼容写法_javascript技巧

addRule在firefox下的兼容写法_javascript技巧:现在用脚本控制 html 元素样式的方法真的很多很多。 对单个元素可以直接 element.style.display=......修改一个样式,也可以 element.className=...修改它的多个样式。 对于多个元素修改样式可以用脚本直接 import css文件。 目前项目中有这么一
推荐度:
标签: js 兼容 火狐
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top