通常,动态网页除了Server端的代码撰写Client端代码也必须下不少工夫。例如:表单提交前的数据验证、图片的轮播、菜单的收合等等。
因此,对于Client端是否能正常执行指令码也必须适当的考察,然而目前浏览器的种类繁多,对Java代码的解读也不同;所以如何撰写出能在大部份浏览器上正常执行的指令码是非常重要的,否则网页的跨平台性将会大打折扣。
以目前较多人使用的IE及FireFox来说,有些指令码其实并不通用,所以在程序的撰写上必须要多加注意,因此有时候得视情况撰写替代的代码以增加兼容性。
举例来说:
指令:document.getElementsByName(“myID”)
作用:找出所有ID=“myID”的元素遵回传Array
虽然此一指令能够在IE上正常执行,但是到了FireFox上却是一点用也没有。
因此,可以考虑将这些元素的ID额外加上编号x(x代表任意数字),然后在网页加载后,再使用document.getElementById(“myID_x”)将各个元素一一存进一个Array。
属性:e.innerText
作用:存取元素的文字内容
在IE上,可以使用e.innerText =“测试内文”;来指定元素e的内容;但是在FireFox上,innerText这个属性却没办法正常使用。
所幸还有一个属性innerHTML可以在两者正常执行,因此应该尽量使用innerHTML来替代innerText。
参数:
说明:tbCell为table的cell元素、tbRow为table的row元素
下列指令码是在row元素中,插入一个cell元素,index为插入位置
tbCell =tbRow.insertCell();//IE执行正常、FireFox则否
tbCell =tbRow.insertCell(index);//IE、FireFox皆正常
对于常使用Client端指令码来产生动态产生元素的程序员而言,选择较高兼容性的指令码来撰写虽然比较费时;但是至少能够确保大部份的使用者都能正常显示、操作,也能减少许多因为兼容性而衍生出来的问题。