1. 程式人生 > >解決火狐瀏覽器iframe的focus和blur事件觸發無效問題

解決火狐瀏覽器iframe的focus和blur事件觸發無效問題

<!DOCTYPE html>
<script>   
function setit(){   
if(document.all){   
	document.getElementById("myframe").attachEvent("onblur",dothis);   
}else{   
document.getElementById("myframe").contentWindow.addEventListener("blur",dothis,false);  
}   
}   
    
function dothis(){   
alert("blurred");   
}   
</script>   
<body onload="setit()">   
<iframe  width="155" height="144" id="myframe"></iframe>   
<input /> 

(以上程式碼轉載自: http://www.111cn.net/wy/js-ajax/72696.htm )

其中document.all為IE的屬性,用來判斷是否為IE瀏覽器。

以上程式碼在chrome中同樣適用。

具體的新增事件格式為如下:

Mozilla中:

addEventListener的使用方式:

target.addEventListener(type, listener, useCapture);

target: 文件節點、document、window 或 XMLHttpRequest。
type: 字串,事件名稱,不含“on”,比如“click”、“mouseover”、“keydown”等。
listener :實現了 EventListener 介面或者是 JavaScript 中的函式。
useCapture :是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);

IE中:

target.attachEvent(type, listener);
target: 文件節點、document、window 或 XMLHttpRequest。
type: 字串,事件名稱,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。
listener :實現了 EventListener 介面或者是 JavaScript 中的函式。 例如:document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});