1.window.event
IE:有window.event對(duì)象
FF:沒有window.event對(duì)象 , 可以通過函數(shù)的參數(shù)傳遞event對(duì)象 。如onclick=clickHandler(event)
解決辦法:var event = event || window.event;
2. 鼠標(biāo)當(dāng)前坐標(biāo)
IE:event.x和event.y
FF:event.pageX和event.pageY
解決辦法:采用通用屬性:event.clientX和event.clientY屬性;
3. 鼠標(biāo)坐標(biāo)加上滾動(dòng)條滾過的距離
IE:event.offsetX和event.offsetY
FF:event.layerX和event.layerY
解決辦法:
代碼如下:
3. event.srcElement
IE:event對(duì)象有srcElement屬性 , 但是沒有target屬性;
FF:event對(duì)象有target屬性 , 但沒有srcElement屬性
解決辦法:使用obj = event.srcElement ? event.srcElement : event.target;來代替IE下的event.srcElement或者FF下的event.target(注意event的兼容性);
4.event.toElement
IE:event對(duì)象有toElement屬性 , 但沒有relatedTarget屬性
FF:event對(duì)象沒有有toElement屬性 , 但有relatedTarget屬性
解決辦法:var target = e.relatedTarget || e.toElement;
5. 標(biāo)簽的x和y的坐標(biāo)位置 , style.posLeft 和 style.posTop
IE:有
FF:沒有
解決辦法:用通用屬性obj.offsetLeft 和 obj.offsetTop
6. 窗體的高度和寬度
IE:document.body.offsetWidth 和 document.body.offsetHeight 。注意 , 此時(shí)頁面一定要有body標(biāo)簽 。
FF:window.innerWidth 和 window.innerHeight , 以及 document.documentElement.clientWidth 和 document.documentElement.clientHeight 。
解決辦法:通用屬性 document.body.clientWidth 和 document.body.clientHeight;
7. 添加事件
IE:element.attachEvent('onclick',function)
FF:element.addEventListener('click',function,true)
解決辦法:element.onclick = function.雖然都可以使用click事件 。但onclick和上面兩種方法效果是不一樣的 。onclick只有執(zhí)行一個(gè)過程 , 而attachEvent 和 addEventListener執(zhí)行的是一個(gè)過程列表 , 也就是多個(gè)過程 。
如:element.attachEvent('onclick',func1); element.attachEvent("onclick", func2)這樣func1和func2都會(huì)被執(zhí)行 。
8. 標(biāo)簽的自定義屬性
IE:如果給標(biāo)簽div1定義了一個(gè)屬性value , 可以div1.value 和 div1["value"]取得該值
FF:不能用div1.value 和div1["value"]
解決辦法:div1.getAttribute('value')
9. document.form.item
IE:現(xiàn)有問題 , document.formName.item("itemName") 這樣的語句 , 不能在 FF 下運(yùn)行
FF:不支持
解決辦法: document.formName.elements["elementName"]
【IE和FF在對(duì)js支持的不同整理及解決方法介紹】10. 集合/數(shù)組類對(duì)象問題
IE:有許多集合類對(duì)象取用時(shí)用()
FF:不能這樣取用
解決辦法:改用[]作為下標(biāo)運(yùn)算 。
如:document.forms("formName") 改為 document.forms["formName"] 。document.getElementsByName("inputName")(1) 改為 document.getElementsByName("inputName")[1]
11. HTML對(duì)象的id作為對(duì)象名的問題
IE:HTML對(duì)象的id可以作為document的下屬變量名直接使用
FF:需要用getElementById()方法
解決辦法:用getElementById('idName')代替idName作為對(duì)象變量使用
12. 用idName字符串取得對(duì)象的問題
IE:利用eval(idName)可以取得 id 為 idName 的HTML對(duì)象 。
FF:不支持
解決辦法:getElementById(idName) 代替 eval(idName)
13. 變量名與某 HTML 對(duì)象 id 相同的問題
IE:因?yàn)镠TML對(duì)象id 在IE中直接調(diào)用 , 所以變量名不能和id相同
FF:可以使用變量名和id相同
解決辦法 , 聲明變量時(shí)一律加上 var , 以避免歧義(最好id和變量名不要相同) 。
14. document.getElementsByName() 和 document.all[name]
IE:getElementsByName()、document.all[name] 均不能用來取得 div 元素
FF:可以兼容document.all , 但會(huì)生成一條警告 。
推薦閱讀
- 古代文學(xué)作品和中國文學(xué)作品是什么關(guān)系
- 打開IE瀏覽器提示瀏覽器不支持js 導(dǎo)致部分功能缺失的故障原因及解決方法介紹
- web3.0和元宇宙的區(qū)別詳細(xì)介紹
- SGH-X708 A3版本初體驗(yàn)
- 蝦和香菇能不能一起煮
- 西肴紀(jì)和大希地什么關(guān)系
- 針對(duì)主流瀏覽器的CSS-HACK寫法和IE常用條件注釋介紹
- 光標(biāo)不動(dòng)了怎么辦
- 下關(guān)沱茶和普洱茶哪個(gè)比較好
- win7系統(tǒng)打開IE瀏覽器彈出查看和跟蹤下載提示窗口的解決方法介紹
