浏览 4530 次
锁定老帖子 主题:关注一下IE和Firefox的兼容性
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-26
最后修改:2009-03-20
在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> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-06-10
谢谢啦,你帮了我一个大忙了。
|
|
返回顶楼 | |
发表时间:2008-09-15
大家一起进步吧
|
|
返回顶楼 | |