论坛首页 入门技术论坛

关注一下IE和Firefox的兼容性

浏览 4520 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-10-26   最后修改:2009-03-20
1.event.srcElement问题

在IE下,event对象有srcElement属性,但是没有target属性;
在Firefox下,even对象有target属性,但是没有srcElement属性.

我们可以这样解决:

使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.

2.上面提到了event,在两种浏览器中也存在问题
window.event只能在IE下运行,而不能在Firefox下运行,
这是因为Firefox的event只能在有事件发生的情况下使用

IE:
<input type="button" value="测试IE下的Event" onclick="test1()"/>
<input type="button" value="测试Event的兼容性" onclick="test2()"/>

<script language="javascript">
function test1() {
alert(window.event); //使用 window.event
}
function test2(evt) {
evt=evt?evt:(window.event?window.event:null);
alert(evt); //使用参数evt
}
</script>
以下是一个例子:
在画面上点击回车时,不触发事件,但是在TextArea这样的框中点击回车触发事件。大家可以修改代码,以供自己使用:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>s</title>
<script language="javascript">
	
document.onkeydown=keypage

function keypage(e) {
	
evt=e?e:(window.event?window.event:null); 
	
	if (evt.keyCode==13) {
		
		if (window.XMLHttpRequest) { // IE7 FF MO
			//alert(( evt ? evt.explicitOriginalTarget : null).tagName)
		
			if(( evt ? evt.explicitOriginalTarget : null).tagName =="TEXTAREA"){
				var obj = evt ? evt.explicitOriginalTarget : null; 
				alert("ID:="+obj.id)
		   }
		} else { // IE6
			if(document.activeElement.type== "textarea") {
					var obj = document.activeElement
					alert("ID:="+obj.id)
			}
		}
	}
}
</script>


</head>
<body>
	
	<input  id="test1"type="text" >
	<br>
	<input id="test2" type="text" >
	<br>
	<input id="test3" type="button" >
	<br>
	<textarea id="test4"></textarea>
	
	
</body>
</html>

=============================================
3.innerText在IE中能正常工作,但是innerText在FireFox中却不行
这里给出一个解决方法
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>关注一下IE和Firefox的兼容性</title>
</head>
<script language="javascript">
function testInnerText(){
if(navigator.appName.indexOf("Explorer") > -1){
document.getElementById('element').innerText = "my text";
} else{
document.getElementById('element').textContent = "my text";
}
}
</script>
<body>
<input name="Button" type="button" value="testInnerText" onclick="javascript:testInnerText()"/>
<div id="element" style="border:1px solid #0066CC; width:100px; height:50px"></div>
</body>
</html>
   发表时间:2008-06-10  
谢谢啦,你帮了我一个大忙了。
0 请登录后投票
   发表时间:2008-09-15  
大家一起进步吧
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics