|
|
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); |