|
| IE & Netscape | IE only |
1 | 居中 | <center> OBJECT </center> |
|
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 οnclick=”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);
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); |
小弟正在改以后公司用asp做的一个系统以支持netscape,对netsacpe接触不久,了解还不多,以后有新的发现再补充