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

Javascript
javascript中的有名函数和无名函数
javascript[js]获取url参数的代码
javascript select 之间传值效果的代码
js正则实现的密码框简单制作,还可以替换成自己想用得符号
脚本控制自适应高度的缩短问题
兼容ie和firefox版本的js反选 全选 多选框
javascript 随机数 与高级应用 附vbscript(asp) 随机数总结
不用确认即可打印的javascript代码
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
用javascript实现div可编辑的常见方法
用JavaScript实现的一个IP地址输入框
用javascript取得传递参数的个数的代码
当鼠标移出灰色区域时候,菜单项怎么隐藏起来
才发现的超链接js导致网页中GIF动画停止的解决方法
javascript window.onerror事件学习新收获
javascript 如何生成不重复的随机数
超个性的导航效果
不能再简单的无闪刷新验证码原理很简单
经常用到的javascript验证函数收集
用js实现手把手教你月入万刀(转贴)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-10   浏览: 352 ::
收藏到网摘: 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下面比较让开发人员舒服的设计。