JS的IE和FF兼容性问题汇总(3)
作者:52css 来源:我爱CSS 发布时间:2008-03-08 13:01:00
10.在mf中没有 parentElement parement.children 而用parentNode parentNode.childNodes
childNodes的下标的含义在IE和MF中不同,MF使用DOM规范,childNodes中会插入空白文本节点。一般可以通过node.getElementsByTagName()来回避这个问题。
当html中节点缺失时,IE和MF对parentNode的解释不同,例如
<form>
<table>
<input/>
</table>
</form>
MF中input.parentNode的值为form, 而IE中input.parentNode的值为空节点
MF中节点没有removeNode方法,必须使用如下方法 node.parentNode.removeChild(node)
11.const 问题
现有问题:
在 IE 中不能使用 const 关键字。如 const constVar = 32; 在IE中这是语法错误。
解决方法:
不使用 const ,以 var 代替。
12. body 对象
MF的body在body标签没有被浏览器完全读入之前就存在,而IE则必须在body完全被读入之后才存在
13. url encoding在js中如果书写url就直接写&不要写&例如var url = 'xx.jsp?objectName=xx&objectEvent=xxx';
frm.action = url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器
一般会服务器报错参数没有找到,当然如果是在tpl中例外,因为tpl中符合xml规范,要求&书写为&
一般MF无法识别js中的&
14. nodeName 和 tagName 问题
现有问题:
在MF中,所有节点均有 nodeName 值,但 textNode 没有 tagName 值。在 IE 中,nodeName 的使用好象有问题(具体情况没有测试,但我的IE已经死了好几次)。
解决方法:
使用 tagName,但应检测其是否为空。
15. 元素属性
IE下 input.type属性为只读,但是MF下可以修改
16. document.getElementsByName() 和 document.all[name] 的问题
现有问题:
在 IE 中,getElementsByName()、document.all[name] 均不能用来取得 div 元素(是否还有其它不能取的元素还不知道)。
17. DOM 数据岛的问题
现有问题:
在IE中, <xml>标签具有特殊意义, 可以内含XML DOM, 并能实现与HTML组件的数据 绑定. 在MF中,<xml>则仅仅是一个未知的标记而已. 另外, 对 IE 来说, <xml>实际意味着这里是一个ActiveX对象, 但它却挂在HTML本 身的DOM树下作为一个节点, 因而会对DOM树的遍历造成严重影响.
解决方法:
IE的数据绑定机制是可以用JS来模拟的, 但是太麻烦, 建议不使用数据绑定机制或者 寻找实现这种模拟的库来做. 我们只讨论如何实现DOM的兼容. 在MF中无论已知的HTML标记还是其它符合XML规范的标记, 都是用统一的DOM树来处理的, 因此, MF事实上完全可以使用DOM数据岛, 但与IE小小的不同在于: 在IE中<xml> 是个 DOM document, 而在MF只是 DOM node. 这个差别通常不足为患. 但是有一个小小的细节, 为了兼容HTML相当随意的语法, MF无法识别简写的空标记. 如:
<xml id="xx"><book><title>xxxx</title><content/><index/></book></xml>
这其中<content/>和<index/>是简写形式的, 会使MF无法识别, 应当写成:
<content></content><index></index>
不过, 我怀疑如果用XHTML, 可能就没有这种问题. 但我还没有试过. 对于IE中<xml>干扰HTML的DOM结构问题, 我现在的方法是处理完毕后把它从HTML的 DOM中删除. 不知道还有没有更好的解.


猜你喜欢
- Doing INTERSECT and MINUS in MySQL Doing an INTERSECT An INTERSECT is
- 分页显示是页面常用技术,可用下列代码来实现:<%page=Request.QueryString("page&q
- 网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读。比如下面的图片就是在 pdf 文件上截取出来的。安装模块PIL:Python I
- 1、标准转换格式符号说明%a 本地星期的短名称 如:Sun, Mon, ..., Sat (en_US); So, Mo, ..., Sa
- 存储文件的重要一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电脑之后,。 默认数据是加载到
- 使用如下命令为 ubuntu 系统安装 virtualenvsudo apt-get install python-virtualenv当我
- 众所周知,vue可以用来开发移动端app,可以使用hbuilder将build好的vue打包成一个移动端app,但是用过之后就会发现,使用c
- 切片原型 strs = ‘abcdefg'Strs[start: end:step]切片的三个参数分别表开始,结束,步长第一位下标为
- 前言本文通过示例给大家介绍了python嵌套字典比较值,取值,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。示例代码#取值
- js延时提示框效果演示: 实现方法 移入显示,移出隐藏 移除延时隐藏,可以实现从第一个div移入第二个div,仍然可以显示<!DOCT
- 数字运算=:用于给变量赋值type(x):查看数据所属类型isinstance(x, A_tuple):判断数据是否为预期类型+:两个数相加
- 基础类似于自定义指令,可以用全局方法 Vue.filter() 注册一个自定义过滤器,它接收两个参数:过滤器 ID 和过滤器函数。过滤器函数
- 前言上位机实战开发先放一放,今天来学习一个新的内容—NumPy的使用1 一维数组例:用普通方法生成一维数组num = [0 for i in
- 背景在做deeplearning过程中,使用caffe的框架,一般使用matlab来处理图片(matlab处理图片相对简单,高效),用pyt
- 多子图figure是绘制对象(可以理解为一个空白的画布),一个figure对象可以包含多个Axes子图,一个Axes是一个绘图区域,不加设置
- 今天学习Python的时候,需要安装一个第三方库,Python Imaging Library,是Python下面一个非常强大的处理图像的工
- discuz注册时,会把密码按一个规则加密。比如我的密码是123456echo md5("123456");
- 在写ASP网页时常用的检测代码:服务器现在时间:<% =now %>服务器CPU型号:<%=Request.ServerV
- java后台相关问题一,程序包lombok不存在通常报这个错误,是因为,我们的开发者工具idea没有安装lombok库导致的解决办法如下:提
- 前言今天给大家分享一下刷到的关于数值处理的算法题。虽然题目比较简单但是问题的处理方式值得我们学习。小学生算术涉及到加法进位、阶乘精确值用于计