DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 將事件處理器作為HTML標記的屬性
將事件處理器作為HTML標記的屬性
編輯:關於JavaScript     

我們已經介紹了對象的概念,我們可以通過定義屬性和方法來定義對象。不僅如此,對象還具有與之相關的事件。由於JavaScript中的內建對象並沒有相關的事件,因此在前面的內容中我們並沒有提到事件這個概念。但是,BOM對象則具有相關的事件。

那麼,BOM對象都具有哪些事件呢?

當特定的操作發生或者狀態改變時,事件將被觸發。例如,當用戶在頁面上單擊時、或單擊頁面上的超鏈接時,或者當鼠標指針移過某段文字時,都可能觸發相應的事件。另外一個經常用到的事件是頁面的load事件,當頁面加載時將觸發這個事件。

那麼,事件對我們有什麼用呢?

為了說明事件的作用,讓我們來看一個例子,當用戶在頁面上的任何地方單擊鼠標時,我們希望彈出一個菜單。假定我們寫好了產生彈出菜單的函數,但是我們怎麼知道什麼時候讓菜單彈出呢?或者換句話說,我們什麼時候調用這個產生彈出菜單的函數呢?因此,我們需要以某種方法捕獲用戶單擊頁面的事件,並且確保一旦單擊頁面的事件發生時,產生彈出菜單的函數即被調用。

為了實現這個功能,需要使用一種稱為事件處理器(event handler)的機制。當事件發生時,事件處理器將連接到需要執行的事件處理代碼。事件處理器提供了當事件發生時捕獲事件、並且執行相應的事件處理程序的機制。通常我們把在代碼中加入事件處理器稱為“將事件處理代碼連接到事件”。這有點類似於設置一個鬧鐘—— 當某個事件發生時,使鬧鐘振鈴。對於一個鬧鐘來說,這個觸發事件就是當到達某一確定的時間點時。

事件處理器由關鍵字on加上要處理的事件名組成。例如,click事件的事件處理器為onclick,load事件的事件處理器為onload。

通過事件處理器,可以使用多種方法將事件處理代碼連接到事件。在本章中,我們將介紹兩種最簡單的辦法。這兩種方法不但被當前的浏覽器所支持,而且自Netscape 2浏覽器就開始使用,甚至更早的浏覽器也支持這兩種方法。在第12章中將介紹其他較新的且更加易於標准化的添加事件的方法。

1. 將事件處理器作為HTML標記的屬性

第一種方法是最常見的,即把事件處理器和關聯的代碼作為HTML標記的屬性和屬性值添加在相應的HTML標記中。

下面將創建一個簡單的HTML頁面,該頁面用<A>標記創建了一個超鏈接。相應地,浏覽器將創建一個對應的A對象。我們都知道,A對象具有一個click事件,當用戶單擊超鏈接時,將觸發該超鏈接的click事件。這個頁面的代碼如下:

<html>

<body>

<A href="somepage.htm" name="linkSomePage">

Click Me

</A>

</body>

</hml>

按照現在的情況,這個頁面除具有一個超鏈接之外並無其他的功能。單擊超鏈接,將導航到一個新的頁面somepage.htm,這是我們創建的另一個頁面。對於超鏈接,我們還沒有加上事件處理器。

正如上文所述,要為某個BOM對象添加事件處理器,最常用且最簡單的方法就是直接將事件處理代碼作為HTML標記的屬性,添加在HTML標記中。在本例中,需要捕獲的就是由<A>標記所定義的A對象的click事件。當用戶單擊這個超鏈接時,我們希望能捕獲該click事件,並執行相應的事件處理代碼。因此,需要為<A>標記添加一個事件處理器,即onclick事件處理器。可以把onclick事件處理器作為一個屬性添加在<A>標記中,並把該屬性的值設置為事件觸發時要執行的處理代碼。

可以將<A>標記修改為如下代碼:

<A href="somepage.htm" name="linkSomePage" onclick="alert('You Clicked?')">

Click Me

</A>

現在,為<A>標記添加了一個屬性:onclick="alert('You Clicked?')"。此時,當用戶單擊了這個超鏈接,將彈出一個消息對話框。之後,超鏈接才會執行默認的功能,並鏈接到由<A>標記的href屬性所定義的頁面。

如果連接到事件處

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved