当前位置: 首页 > 图文教程 > 网络编程 > Javascript > innerHTML在Mozilla Firefox和Opera下执行的一个特例情况。

Javascript
用Javascript实现锚点(Anchor)间平滑跳转
实现png图片和png背景透明(支持多浏览器)的方法
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
用DIV完美模拟createPopup 弹出窗口(修正版),支持Firefox,ie,chrome
JavaScript 中级笔记 第一章
IE与Firefox在JavaScript上的7个不同写法小结
MooTools 1.2介绍
Mootools 1.2教程(2) DOM选择器
Mootools 1.2教程(3) 数组使用简介
在IE下获取object(ActiveX)的Param的代码
ExtJS 配置和表格控件使用
javascript 缓冲效果实现代码 推荐
html数组字符串拼接的最快方法
JavaScript 浮动定位提示效果实现代码
类似CSDN图片切换效果脚本
javascript 面向对象编程 function也是类
javascript 面向对象编程 聊聊对象的事
javascript 面向对象编程 function是方法(函数)
[原创]基于innerHTML中的script广告实现代码[广告全部放在一个js里面]
jQuery slider Content(左右控制移动)

Javascript 中的 innerHTML在Mozilla Firefox和Opera下执行的一个特例情况。


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-10   浏览: 216 ::
收藏到网摘: n/a

是在CSDN论坛看到的一个问题,平常我也没有注意,或者说没有这样用吧。看代码
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

不是预期的结果吧?包括在Opera下执行的情况也是与Firefox下相同的,你可以尝试在Opera下运行就明白了。
如果能够得到我们预期的效果呢?我尝试着用__defineGetter__的方法在Mozilla下得到所有的innerHTML,在这里却给了我一些提示。比如:
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

上面这些代码虽然达不到预期目的,但是却是要知道一定要得到attribute的值,因此我尝试着用下面这个方法来做。
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

这个方法却成功了,也就可以说明,在Mozilla下的innerHTML通过遍历元素的所有节点的tagName还有attrubutes来得到其innerHTML的。因此我们第一个例中的innerHTML得不到改动后的value值。
与此同时,Opera下这一招也可以用。也证明在Opera下的innerHTML也是通过遍历元素的所有节点的tagName还有attrubutes来得到其innerHTML的。
难道w3c里的标准是这样的吗?还没有空来得及查w3c的资料,所以也说不上是Opera与Mozilla下的巧合,还是IE下面比较让开发人员舒服的设计。