IE事件模型與DOM事件模型

當我們進行javascript編程的時,(至少)需要考慮兩種模型:一種IE模型,事實規範,瀏覽器IE;另一種DOM2模型,是行業規範,瀏覽器如:火狐,谷歌.

IE模型,此種訪問事件的方式是通過隱式可用的全局對象event。而DOM2規範的事件對象由系統創建,作爲函數參數隱式傳入事件處理器

<body>
<!-- 綁定事件處理器時,將event作爲參數傳入 -->
<button οnclick="clickHandler(event);">按鈕</button>
<script type="text/javascript">
	function clickHandler(evt)
	{
		alert(evt.srcElement.innerHTML);//evt.srcElement返回發生事件的HTML元素
	}
</script>
</body>
輸出結果: 點擊“按鈕”後,輸出此button的value值


DOM2

<body>
<!-- 綁定事件處理器時,將event作爲參數傳入 -->
<button id="a">按鈕</button>
<script type="text/javascript">
//定義一個形參evt
function clickHandler(evt)
{
//DOM 2的事件對象將作爲第一個參數傳入clickHandler對象
alert(evt.target.innerHTML);//eve.target返回觸發事件的事件源
}
//爲按鈕a綁定事件處理器
document.getElementById("a").οnclick=clickHandler;//DOM2規範的事件對象由系統創建,作爲函數參數隱式傳入事件處理器
</script>
</body>
下面介紹兼容瀏覽器的方法
<body>
<button id="a">按鈕</button>
<script type="text/javascript">
//定義一個形參evt
function clickHandler(evt)
{
	//對於IE瀏覽器,事件作爲隱式可用的全局對象event
	if (!evt) 
	{
		evt = window.event
	}
	//對於DOM 2事件模型,訪問事件源用target屬性
	if (evt.target)
	{
		alert(evt.target.innerHTML);
	}
	//對於IE瀏覽器
	else
	{
		alert(evt.srcElement.innerHTML);
	}
}
//爲按鈕a綁定事件處理器
document.getElementById("a").οnclick=clickHandler;
</script>
</body>
這樣就兼容了不同瀏覽器









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章