1.window.event
IE:有window.event對象
FF:沒有window.event對象,可以通過函數的參數傳遞event對象。如onclick=clickHandler(event)
解決辦法:var event = event || window.event;
2. 鼠標當前坐標
IE:event.x和event.y
FF:event.pageX和event.pageY
解決辦法:采用通用屬性:event.clientX和event.clientY屬性;
3. 鼠標坐標加上滾動條滾過的距離
IE:event.offsetX和event.offsetY
FF:event.layerX和event.layerY
解決辦法:
<script type=”text/javascript”>
function mouseDownHandler(event) {
var event = event || window.event;
//var event = event ? event : window.event;
var x = event.offsetX || event.layerX;
var y = event.offsetX || event.layerY;
}
</script>
3. event.srcElement
IE:event對象有srcElement屬性,但是沒有target屬性;
FF:event對象有target屬性,但沒有srcElement屬性
解決辦法:使用obj = event.srcElement ? event.srcElement : event.target;來代替IE下的event.srcElement或者FF下的event.target(注意event的兼容性);
4.event.toElement
IE:event對象有toElement屬性,但沒有relatedTarget屬性
FF:event對象沒有有toElement屬性,但有relatedTarget屬性
解決辦法:var target = e.relatedTarget || e.toElement;
5. 標簽的x和y的坐標位置,style.posLeft 和 style.posTop
IE:有
FF:沒有
解決辦法:用通用屬性obj.offsetLeft 和 obj.offsetTop
6. 窗體的高度和寬度
IE:document.body.offsetWidth 和 document.body.offsetHeight。注意,此時頁面一定要有body標簽。
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只有執行一個過程,而attachEvent 和 addEventListener執行的是一個過程列表,也就是多個過程。
如:element.attachEvent(‘onclick’,func1); element.attachEvent("onclick", func2)這樣func1和func2都會被執行。
8. 標簽的自定義屬性
IE:如果給標簽div1定義了一個屬性value,可以div1.value 和 div1["value"]取得該值
FF:不能用div1.value 和div1["value"]
解決辦法:div1.getAttribute(‘value’)
9. document.form.item
IE:現有問題,document.formName.item("itemName") 這樣的語句,不能在 FF 下運行
新聞熱點
疑難解答