万恶的IE–DOM.getAttribute

有个项目使用到ajax,在FIREFOX上正常,而在IE下就卡壳了.

在 DOM 中,属性也是节点。与元素节点不同,属性节点拥有文本值。
获取属性的值的方法,就是获取它的文本值。
.getAttribute() 方法返回属性的值。

在IE上弹出的是[object],而在除了IE的浏览器firefox,opear,chrome上弹出的都是我想要的 “timeout.php”,
怎么在IE下就成了一个对象呢?
而在同个页面的另一个表单上弹出的都是”timeout.php”.
问题就出在<input name=”action” type=”hidden” value=”timecount” />

在IE下,一个form Element,会将里面节点也认为是自己的属性,很霸道的想法吧.
于是在form.getAttribute的时候会先检查里面的节点有没有name=”action”的,有就取出这个节点.

解决方法一个是把input 的name=”action” 改成其他值,比如<input name=”myaction” type=”hidden” value=”timecount” />
另外就是不使用getAttribute方法,使用getAttributeNode方法.

最后,高呼一声,万恶的IE万岁.他给了多少人多少工作机会…..

《万恶的IE–DOM.getAttribute》有3个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注