IE下创建有name属性的节点

| | Comments (0) | TrackBacks (0)
在HTML标签中,时常需要用到标签iframe, inpute与form,这三个都拥有属性`name`,一般情况下,不需要动态创建这样些标签。

然 而通过JavaScript生成的应用程序,需要创建这样一个拥有`name`属性的标签。是的,可以通过document.createElement 创建节点,然后赋予属性`name`值。事实应该是这样的,不过IE有些让人失望,这样赋值的`name`值无法通过 document.getElementsByName('input name')引用,也不能用document.forms['form name'].elements['input name']的方式引用。不过IE提供了另外一种方式创建节点:

    // 查看Microsoft: createElement Method
    document.createElement('<tag attribute="value">');

这个方式不兼容于非IE浏览器,创建时需要进行浏览器检查。

创建form时,Hangring的做法是,`name`,`method`,`enctype`三个属性一同在标签中创建;一般赋值方式,会导致IE无法上传文件。

另 外,对于何时用document.getElementsByName方法,这样看哪些标签拥有`name`属性。在合适的标签用 document.getElementsByName,而其它的用document.getElementById,避免混淆。因为在IE下,前一个方 法如果取不到`name`,会去取`id`的值,程序达到一定规模,将是个噩梦,而且这样的方式根本不兼容其他浏览器。

创建input标签后,首先应设置属性`type`,然后再调用appendChild()方法,IE不支持添加到节点树后改变input类型。

0 TrackBacks

Listed below are links to blogs that reference this entry: IE下创建有name属性的节点.

TrackBack URL for this entry: http://www.tracesoul.com/mt-tb.cgi/26

Leave a comment

About this Entry

This page contains a single entry by Hangring published on April 29, 2008 10:04 AM.

那人会飞行 was the previous entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.01