當我們進行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>
這樣就兼容了不同瀏覽器