1、浏览器事件的捕捉
在IE下有一个全局的window.event,当事件触发后可以直接使用,但是在fireFox下没有这个东西,当调用触发事件调用一个函数时,如果这个函数没有形参,那么firefox会默认的把event(事件)传进去,但是有参数时就不行啦,所以解决的办法是,自己手动传一个event进去,这样就ok了,具体代码如下:
下面两个函数,都是响应鼠标onclick时触发的动作,第一个在ie下使用正常,但是在firefox下却有问题,改成第二个那样使用,就没有问题了,注意调用方法的区别
view plaincopy to clipboardprint?
<html>
<head>
<title>test</title>
<script language="javascript">
function testevent()
{
window.alert(window.event.target.id);
return;
}
</script>
</head>
</body>
<a href="#" onclick="testevent()" id="alink">testevent</a>
</body>
</html>
<html>
<head>
<title>test</title>
<script language="javascript">
function testevent()
{
window.alert(window.event.target.id);
return;
}
</script>
</head>
</body>
<a href="#" onclick="testevent()" id="alink">testevent</a>
</body>
</html>
view plaincopy to clipboardprint?
<html>
<head>
<title>test1</title>
<script language="javascript">
function testevent(evt)
{
window.alert(evt.target.id);
return;
}
</script>
</head>
</body>
<a href="#" onclick="testevent(event)" id="alink">testevent</a>
</body>
</html>
<html>
<head>
<title>test1</title>
<script language="javascript">
function testevent(evt)
{
window.alert(evt.target.id);
return;
}
</script>
</head>
</body>
<a href="#" onclick="testevent(event)" id="alink">testevent</a>
</body>
</html>
其实event对象在ie以及firefox还有很多不同的特性,比如clienx,pagex等,但是由于在现在流行使用的js框架prototype中解决了很多这些问题,所以如果是在基于prototype下的开发,这些问题可以考虑得少一些了,只是上面提到的这个捕获问题,prototype中并没有完善的解决,所以单独列出来,下面提及的关于js的也都只列出prototype中未解决的
2、关于透明度的设置
为了达到给层设置半透明的效果时,在IE和firefox下也有所不同,IE下,style的filter属性有Alpha值可供使用,而firefox下没有Alpha值,所以得指定style的MozOpacity,代码见下:
<STYLE>
filter: Alpha(opacity=10); /*IE*/
-moz-opacity:.1; /*老版本FireFox 1.0 以前*/
opacity:0.1; /*新版本FireFox*/
</STYLE>
view plaincopy to clipboardprint?
<script language="javascript">
//设置一个id为screen的div的透明度为45%,在IE下:
document.getElementById(''screen'').style.filter=''Alpha(Opacity=45)'';
//而在firefox下:
document.getElementById(''screen'').style.MozOpacity=''0.45'';
</script>
<script language="javascript">
//设置一