ie和firefox浏览器在网页编程方面的区别及...

1.firefox不支持对象加事件的函数名,如:以下代码在IE中能正常显示,但在firefox中则不能;
function.window.onload(){
alert("onload");
}
改为用:
window.onload = fnShow;
function fnShow(){
alert("onload");
} 或直接写为:
window.onload = function (){
alert("onload");
}
//-------
2.flash,要设置embed的src属性才能正常显示;如:<embed src="../images/easewe.swf";
但在IE中要设置param name="src"的value值才能显示;如:<PARAM NAME="Src" VALUE="./images/easewe.swf"">
--------
所以flash要同时设置这两个属性;
3.制作细线表格:
在IE中可以用bordercolordark="网页背景色",使得表格看起来很细;
但在firefox中不起作用;需给表格增加样式:style="border-collapse:collapse;";
所以要在ie和firefox中都显示细表格,则应该给表格加上样式style="border-collapse:collapse;";
4.在IE中11px和12px显示的大小是一样的,但在firefox中11px会比12px小,导致字在firefox中比ie中小;
所以都需设置12px;
5.集合类对象问题
IE下,可以使用()或[]获取集合类对象;Firefox下,只能使用[]获取集合类对象.
解决方法:统一使用[]获取集合类对象.
6.自定义属性问题
IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性.
解决方法:统一通过getAttribute()获取自定义属性.
7.event.x与event.y问题
IE下,even对象有x,y属性,但是没有pageX,pageY属性;Firefox下,even对象有pageX,pageY属性,但是没有x,y属性.
解决方法:使用mX(mX = event.x ? event.x : event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX.
8.event.srcElement问题
IE下,even对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性.
解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.
9.window.location.href问题
IE或者Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5.x下,只能使用window.location.
解决方法:使用window.location来代替window.location.href.
10.访问frame对象:
IE:使用window.frameId或者window.frameName来访问这个frame对象.
Firefox:只能使用window.frameName来访问这个frame对象.
另外,在IE和Firefox中都可以使用window.document.getElementByIdx("frameId")来访问这个frame对象.
11.window.event问题
window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用.
解决方法:
IE:
<input name="Button8_1" type="button" value="IE" _disibledevent=>
...
<script language="javascript">
function gotoSubmit8_1() {
...
alert(window.event); //use window.event
...
}
</script>
IE&Firefox:
<input name="Button8_2" type="button" value="IE" _disibledevent=>
...
<script language="javascript">
function gotoSubmit8_2(evt) {
...
evt=evt?evt:(window.event?window.event:null);
alert(evt); //use evt
...
}
</script>
下面还有个通用的得到event的方法
function getEvent() //同时兼容ie和ff的写法
{
if(document.all) return window.event;
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0)
{
if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
{
return arg0;
}
}
func=func.caller;
}
return null;
}
到别的方法去直接调用就好了
function move()
{
var evt=getEvent();
......
}
关于InnerText在FF下的兼容性
2007-11-16 14:44
<script language="javascript">
function testInnerText(){
if(navigator.appName.indexOf("Explorer") > -1){
document.getElementByIdx('element').innerText = "my text";
} else{
document.getElementByIdx('element').textContent = "my text";
}
}
</script>
Tags: 

延伸阅读

最新评论

发表评论