posts - 10, comments - 4, trackbacks - 0, articles - 1

<转>IE VS NETSCAPE 不同点列举

Posted on 2007-06-19 11:41 yuyu 阅读(348) 评论(1)  编辑  收藏
最近在将公司的管理界面做成IE FF下通用的,刚刚做完,便在网上发现有位朋友已经将不同点列出来了。如果当初查阅了会节省很多时间,感激之余,转过来,慢慢欣赏。

 

 

IE & Netscape

IE only

1

居中

<center> OBJECT </center>

<p align=center> OBJECT </p>

2

form element 使用

所有<input>等要引用的元素,都放在一个<form></form>中

可以通过id直接访问,不通过form

3

元素的引用方法1

document.form_name.element_name

document.form_name.element_name[i]

document.form_name.elements[element_name]

form_name.element_name

form_name.all(element_name)

form_name.elements(element_name)

element_id

4

全选文本框

document.form_name.textbox_name.focus()

document.form_name.textbox_name.select()

注意:netscape6.1以上版本,可以不先focus

document.form_name.textbox_name.select()

(netscape中必须先focus)

5

Table

<table><tr><td><th>都有完整的结束标记</table></tr></td></th>

缺少一些没有关系

6

根据名字索引

document.all,这是造成大部分javascript函数不能使用的原因;

 

document.getElementById(id) 可用,但是只是支持id,不支持按name索引

 

(如果要同时用element_name or id 索引,可以考虑使用util.asp加入的新函数:

document_all(element_name_or_id) 见使用示例1)

注意:netscape4.8不支持document. GetElementById和document.all

document.all(element_name_or_id)

 

7

关于CSS

class=class_name

(class_name区分大小写, 而且不支持BORDER-COLLAPSE: collapse,这是造成界面难看的主要原因)

.css中的第一个类不起作用

class=class_name(class_name不区分大小写)

8

 

低版本javascriptswitch的能力很差不支持变量case

注意:我测过nerscapte6.1以上版本,支持case

 

9

元素引用2

引用元素的id时,区分大小写

引用元素的id时,不区分大小写

10

Cursor显示手形

Cursor: pointer

(ie6支持pointer; ie5以下不支持pointer)

Cursor: hand

11

innerText

innerHTML代替innerText

netscape6.0+不支持innerText

 

12

<Caption align=left></caption>(table的属性)

对于netscape,Caption出现在table的左侧,如附图1

对于ie,Caption出现在table的上方左侧,

如附图2

13

<col>

对于netscape,<col>的显示属性不会影响到所对应的其他列

对于ie,<col>的显示属性会影响到所对应的其他列

14

元素引用3

元素不是在form内时,引用元素使用document.getElementById("tblRole").

Window.tblRoleie可以.

15

自定义属性的使用.

有些界面上使用如<tr prj_code=’’>这样的自定义属性方式来保存值,netscape不支持tr.prj_code取值.需用objElm.attributes.getNamedItem(strAtrName).value.

注意:util.asp里已经写了function GetElementAttribute(objElm,strAtrName),可以直接调用.

Tr.prj_code可以取到值.

16

事件event及取事件源元素

Netscape事件.target”而不支持event. SrcElement取事件源元素.

Netscape也不能用event直接得到事件,可以考虑以“触发事件时将event传到javascript的方式得到事件”.

注意:util.asp里已经写了event_SrcElement(ObjEvent)来获得事件源元素.

触发事件的方法如:

<input type=button onclick=”invokeClick(event);”>

Event. SrcElement

17

Form

NetScape中必须使用document.FormName,

IE中可以使用document.FormName

Window.FormName

18

对表格的操作

TableId.rows[i].cells[i].childNodes[i]

Netscpate里不能使用 ( )

TableId.rows[i].cells[i].childNodes[i]

TableId.rows(i).cells(i).childNodes(i)

19

TableId.rows[i].cells[i].childNodes[i].length不同的问题

 

子节点类型有2,一种是element node;(nodeType=1),另一种是text node(nodeType = 3),可以遍历所有子节点,把所有的text node删掉,也可以修改html代码,把多余的空格删掉

方法一:

var tbl1 = document.getElementById(“table1”);

for (I=0;I<tbl1.childNodes.length)

{

   var temp = tbl1.childNodes[i];

if (temp.nodeType == 3)

{

 tbl1.removeChild(temp);

}

}

20

parentElement

ParentNode

Netscape中不能使用parentElement

ParentElement

parentNode

21

SrcElement

IEsrcElement,netscapetarget,

ie不能用target

 

22

Children,childNodes

ChildNodes

Children,childNodes

23

Radiobuttonnetscape中出现可以多选的问题

必须把radiobutton放入<form></form>

 

24

Msxml.dll

NETSCAPE:

VarxmlDoc= document.implementation.createDocument("","",null);

 

var xmlServerHttp = new XMLHttpRequest();

 

 

 

IE:

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");

 

var xmlServerHttp = new ActiveXObject("Msxml2.XMLHTTP");

Ie 支持:xmlDoc.load(filename) 和 xmlDoc.loadXML(string)

NS只支持xmlDoc.load(filename)方法

 

if (navigator.appName =="Microsoft Internet Explorer") //IE

    {  

        var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");

        var xmlServerHttp = new ActiveXObject("Msxml2.XMLHTTP");      

        xmlDoc.async = false;

        xmlDoc.loadXML(xmlStr);

        xmlServerHttp.open("POST",toUrl, false);

        xmlServerHttp.send(xmlStr);

        re = xmlServerHttp.responseText;

    }

    else

    {

        var xmlDoc = document.implementation.createDocument("","",null);

        var xmlServerHttp = new XMLHttpRequest();

        var DOM = new DOMParser();

        xmlDoc.async = false;

        var DOMdoc = DOM.parseFromString(xmlStr,"text/xml");

        xmlDoc.load(DOMdoc);

        xmlServerHttp.open("POST",toUrl, false);

        xmlServerHttp.send(DOMdoc);

        re = xmlServerHttp.responseText;

    }  

SponOrgXMLforUpdate1 = “<sponsor_org name=’zwh’ age=’22’ />”

if (navigator.appName =="Microsoft Internet Explorer") //IE

{

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument"); xmlDoc.async=false; xmlDoc.loadXML(SponOrgXMLforUpdate1);

 node = xmlDoc.selectSingleNode("//sponsor_org");

} else

{

var DOM = new DOMParser();

var xmlDoc = DOM.parseFromString(SponOrgXMLforUpdate1, 'text/xml'); var node = xmlDoc.getElementsByTagName('sponsor_org')[0]; }

 

25

<tr id=”tr1” a=”a1” b=”b1”>

取值:

tr1.attributes.getNamedItem("a ").value

tr1.attributes.getNamedItem("b ").value

赋值或者设置属性

tr1.setAttribute(“a”,”a1”)

tr1.setAttribute(“b”,”b1”);

 

Tr1.a

Tr1.b

26

给下来框新增一个option

Var newOpt =new Option(text,value,false,false); Select.options[Select.options.length] = newopt;

var oOption = document.createElement("OPTION"); oOption.text="" ; oOption.value=""; Select.add(oOption);

27

删除下拉框的某个option

 Select.options[i] = null;

Select.options[i] = null;

Select.options.remove(i);

 
转自 http://tb.blog.csdn.net/TrackBack.aspx?PostId=250206

Feedback

# re: IE VS NETSCAPE 不同点列举  回复  更多评论   

2007-06-19 12:00 by yuyu
另外还要补充一点,在25中赋值如果是对象事件的方法的时候,
比如
tr1.setAttribute("onclick", "showHide('args')");
FF是上面的方法可用,IE用不了,IE必须这样使用
tr1.setAttribute("onclick", "new Function(showHide('args'))");

并且如果不带参的话,IE也可以直接写成
tr1.setAttribute("onclick", "showHide");
而FF中方法必须要加括号。

只有注册用户登录后才能发表评论。


网站导航: