IE VS NETSCAPE

作者: 来源: 日期:2006-7-6
 
 
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
 
低版本javascript中switch的能力很差,不支持变量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.tblRole在ie可以.
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
IE用srcElement,netscape用target,
ie不能用target
 
22
Children,childNodes
ChildNodes
Children,childNodes
23
Radiobutton在netscape中出现可以多选的问题
必须把radiobutton放入<form></form>中
 
24
Msxml.dll
NETSCAPE:
VarxmlDoc= document.implementation.createDocument("","",null);
 
varxmlServerHttp =newXMLHttpRequest();
 
 
 
IE:
varxmlDoc =newActiveXObject("Msxml2.DOMDocument");
 
varxmlServerHttp =newActiveXObject("Msxml2.XMLHTTP");
Ie 支持:xmlDoc.load(filename) 和 xmlDoc.loadXML(string)
NS只支持xmlDoc.load(filename)方法
 
if(navigator.appName =="Microsoft Internet Explorer") //IE
  { 
    varxmlDoc =newActiveXObject("Msxml2.DOMDocument");
    varxmlServerHttp =newActiveXObject("Msxml2.XMLHTTP");   
    xmlDoc.async =false;
    xmlDoc.loadXML(xmlStr);
    xmlServerHttp.open("POST",toUrl,false);
    xmlServerHttp.send(xmlStr);
    re = xmlServerHttp.responseText;
  }
  else
  {
    varxmlDoc = document.implementation.createDocument("","",null);
    varxmlServerHttp =newXMLHttpRequest();
    varDOM =newDOMParser();
    xmlDoc.async =false;
    varDOMdoc = DOM.parseFromString(xmlStr,"text/xml");
    xmlDoc.load(DOMdoc);
    xmlServerHttp.open("POST",toUrl,false);
    xmlServerHttp.send(DOMdoc);
    re = xmlServerHttp.responseText;
  } 
 
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);
web页面要求支持netscape时需要注意的一些事项,主要是javascript编写方面的
小弟正在改以后公司用asp做的一个系统以支持netscape,对netsacpe接触不久,了解还不多,以后有新的发现再补充
编者著:本文自互联网搜集,原作者与出处已经不详,望知情者或作者告知,不甚感谢。
相关文章