javascript事件對象event || e瀏覽器的兼容性


<script language="JavaScript">
function OnKeyUp(_e)   // 釋放按鍵事件處理程序
{
var e = _e?_e:window.event; // 獲取有效的事件對象 ,?:是二元運算符,等價於 || 運算符
if( event.keyCode == 13 ) // 按下的是否是回車鍵
{
  alert( "您輸入的內容是:"+Text1.value ); // 將文本框中的內容顯示在消息框中
}
}
</script>

<input id="Text1" type="text" onkeyup="OnKeyUp()">

這里的var e = _e?_e:window.event; // 獲取有效的事件對象,這一句,是不是有沒有都可以,我把這一名刪除了,效果還是一樣的,如果有用的話這一句是什么作用呢???

 

這句話的目的是照顧到瀏覽器的兼容性,不同的瀏覽器解釋js代碼的方式不同,這句話將觸發的事件對象賦予e這個變量,在ie中事件對象定義為window.event,
而在其他一些瀏覽器,該對象需要作為參數傳入,即_e,傳入的時候傳event,見下面的代碼。

你去掉這句話在ie下依然可以的原因是 event == window.event,所有對象都是window對象的屬性,所以加不加window瀏覽器都能認出來。

但是這段代碼放到firefox下就無法正常執行。 並且你的代碼寫的也有問題,判斷按下的是否回車鍵那句應當使用e這個變量而不是event,
正確的應該是:
<script language="JavaScript">
function OnKeyUp(_e) // 釋放按鍵事件處理程序
{ var e = _e?_e:window.event; // 獲取有效的事件對象 if( e.keyCode == 13 ) // 按下的是否是回車鍵
{ alert( "您輸入的內容是:"+document.getElementByIdx('Text1').value ); } }
</script>
<input id="Text1" type="text" onkeyup="OnKeyUp(event)">


出處:http://blog.sina.com.cn/s/blog_643fff450100izp5.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM