利用mergeAttributes设置name属性

时间:2009-12-12 18:48:00 

在国外一博客看到的技巧,终于解决IE的这个老大难问题。我在IE的setAttribute bug也提到其解决方法,一是innerHTML,一是IE特别的creatElement使用方法,不过都是要求在生成DOM时一同搞定name属性,这种在DOM生成后再修改name属性的方法真是高明啊。

介绍一下mergeAttributes 方法。它有两个参数oSource与 bPreserve :

mergeAttributes
oSourceIE5.0 必选项。对象(Element)。指定属性要被复制到 object 的对象。
bPreserveIE5.5 可选项。布尔值(Boolean)。 false :  不保护目标对象的身份属性(id,name)。 true : 默认值。保护目标对象 object 的身份属性。

mergeAttributes方法能把oSource 对象的所有属性,包括自定义属性,依附在其上面的事件与样式都复制过,在 IE5.0 及之前的版本中,只读属性不会被复制。如 id 属性。 在 IE5.5+ 中,通过设置 bPreserve 参数值为 false ,可以使 oSource 的所有属性被复制到 调用此方法的对象上 ,包括id属性和 name属性。

//下面代码会把新生成的input对象的name属性复制到inputObject对象上。

.inputObject.mergeAttributes(document.createElement("<input name='nasami' />"))

下面是一个完美的设置属性的方案

var setAttribute = function(obj,attrName,attrValue){ 
if("!+\v1" && attrName === "name"){ 
obj.mergeAttributes(document.createElement("<input name='" + attrValue + "'/>"), false); 

}else{ 

if(obj.setAttribute){ 
     
obj.setAttribute(attrName,attrValue); 
 
}else{ 
     
obj[attrName] = attrValue; 
   
}    
}          
}

标签:setAttribute,dom,ie,
0
投稿

猜你喜欢

  • 浅谈品牌的视觉识别

    2009-07-03 12:28:00
  • Facebook是如何设计的[译]

    2009-09-17 13:10:00
  • 新浪乐居的人不好!哈哈

    2009-07-23 20:39:00
  • 准备SQL Server 2008透明数据加密

    2009-01-22 14:18:00
  • php链式操作mysql数据库(封装类带使用示例)

    2023-05-25 02:58:22
  • 利用global.asa计划执行程序

    2008-03-05 12:49:00
  • eWebEditor在线HTML编辑助手下载及安装使用说明

    2008-10-11 13:58:00
  • IE下,事件触发那点破烂事儿

    2009-04-27 12:31:00
  • asp MD5加密方式使用建议

    2011-03-30 11:17:00
  • 不同浏览器空格的宽度

    2007-08-22 08:29:00
  • 网址导航的组织方法

    2008-09-27 12:35:00
  • asp被杀毒软件误删的解决方法

    2011-04-11 11:16:00
  • css学习笔记: 重置默认样式 css reset

    2009-07-19 14:30:00
  • IE6局部调用PNG32合并图片

    2009-03-11 21:24:00
  • ASP 根据用户权限判断显示的列标题

    2011-03-29 11:01:00
  • document.getElementById的简写方式

    2010-06-21 10:44:00
  • 50种方法巧妙优化SQL Server数据库

    2008-12-24 15:49:00
  • onerror图片失效时显示其他图片

    2008-08-11 21:05:00
  • 在SQL Server 2008中安装安全审计

    2009-02-24 17:22:00
  • 客户端JavaScript代码封装

    2008-12-26 18:10:00
  • asp之家 网络编程 m.aspxhome.com