張智星 http://mirlab.org/jang 台大資工系 多媒體檢索實驗室 第八章 事件 張智星 http://mirlab.org/jang 台大資工系 多媒體檢索實驗室.

Slides:



Advertisements
Similar presentations
MATLAB 程式設計 時間量測 清大資工系 多媒體資訊檢索實驗室.
Advertisements

和码汉字字形技术 和码汉字字形学习法 和码汉字字形输入法.
網路程式設計-期末專案 資工二B B975701 2 8 黃首翰 ~Rock your life~
P303 HTML/DHTML/CSS/JavaScript 專業HTML網頁設計 陳錦輝.
張智星 台大資工系 多媒體檢索實驗室 第一章 JavaScript 基本介紹 張智星 台大資工系 多媒體檢索實驗室.
《网页设计与制作》 教学课件 主讲人:湖南铁道职业技术学院 陈承欢
Dreamweaver的工作界面.
第九章 視窗事件應用技巧.
网页制作 第五讲 Dreamweaver基础.
Chapter 5 迴圈.
DHTML 程式設計 HTML & CSS & JavaScript
第15章 行为 Dreamweaver CS4提供了丰富的行为,这些行为的使 用可以为网页对象添加一些动态效果和简单的交互功 能,使那些不熟悉JavaScript语言的网页设计师也可 以方便的设计出通过编写JavaScript语言才能实现的 功能。本章将首先介绍一些基本概念,以及“行为” 面板的基本操作;接着结合实例具体讲解常用的.
本單元要介紹『事件』的觀念,並先以『計時器事件』為例來說明。
Javascript 初步 簡單程式篇 簡單程式篇.
第16章 行為指令的應用 16-1 認識行為面板 16-2 常用的行為指令.
第7章 层与行为.
Q101 在701 SDX Linux上的標準安裝與使用程序v2
滑鼠移動與按鍵事件 JavaScript 滑鼠移動與按鍵事件.
JavaScript 靜宜大學 資管系 楊子青.
HiNet 光世代非固定制 用戶端IPv6設定方式說明
JavaScript 靜宜大學 資管系 楊子青.
音訊 延伸學習 Audio Signal Processing and Recognition (音訊處理與辨識) 張智星
MATLAB 程式設計入門篇 握把式圖形與 GUI 設計
MATLAB 程式設計入門篇 握把式圖形與 GUI 設計
R教學 安裝RStudio 羅琪老師.
JavaScript 靜宜大學 資管系 楊子青.
自由軟體介紹(一) 把flash通通帶回家 報告人:陳俊銘.
網頁切換移轉 JS vs. ASP.NET.
安裝公文製作系統 1.*到文書組下載公文製作系統* 或 2.輸入網址
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
系統設定 IE8相容性檢視
網頁切換移轉 JS vs. ASP.NET.
電腦攻擊與防禦 使用電腦教室VMware軟體說明.
數位鳳凰計畫-復習課程 授課:方順展.
標籤、按鈕、工具列、狀態列 (Labels, Buttons, Tool Strips, and Status Strips)
VS.NET 2003 IDE.
網路程式設計期末project B 張芸菱.
打開您的瀏覽器,於空白的地方按下右鍵觀察是否有「Google」的工具列
本院使用建教合作之輔仁大學 圖書館資料庫 設定方式說明
Events & Event Handling
資料來源 2 網路過濾軟體之安裝說明 資料來源 2.
表格(HTML – FORM).
張智星 清大資工系 多媒體檢索實驗室 Tree Net Construction 張智星 清大資工系.
安裝 / 操作 flashget SOP (以Win 7 作業系統為範例)
JavaScript 语言2 学习网站: 第 4 章 JavaScript 语言2 学习网站:
網路程式設計-期末專案 資工二B B96570101 戴偉恒 地 方 美 食.
一用就上手3D列印設計 AUTODESK 123D Tinkercad 3D 設計網站
GridView.
GridView操作 (II).
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
表格(HTML – FORM)
取得與安裝TIDE 從TIBBO網站取得TIDE
IE7設定步驟畫面 點選IE網頁上的工具→網際網路選項
PowerPoint 操作介紹 106 計算機概論
PROGRAM 7 SQUARE E. Angel.
案件名稱: 資安預警通報 通報等級: 第一級 發生時間: 2019/02/24 03:53:28 案件說明:
JQuery 標籤操作 建國科技大學 資管系 饒瑞佶 2013/4 V1.
Dreamweaver 進階網頁製作 B 許天彰.
1. 查詢個人電腦版本 1.進入控制台 2.點選“所有控制台項目” 3.點選“系統”.
國立屏東大學宿舍網路連線 設定說明 104/08/12.
5. 令圖畫動起來 Tween 功能介紹 移動效果 顏色漸變效果 形狀漸變效果 離開.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
Brief Guide of FrontPage
電子郵件簡報.
小畫家教學 電子版儲存於 學校網頁/學科資訊/電腦科
張智星 台大資工系 多媒體檢索實驗室 第十三章 函數與程式碼的重複使用 張智星 台大資工系 多媒體檢索實驗室.
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
張智星 台大資工系 MIR實驗室 第23章 程式碼的重複使用 張智星 台大資工系 MIR實驗室.
Unix指令4-文字編輯與程式撰寫.
Presentation transcript:

張智星 http://mirlab.org/jang 台大資工系 多媒體檢索實驗室 第八章 事件 張智星 http://mirlab.org/jang 台大資工系 多媒體檢索實驗室

本章大綱 大綱 主題 本章介紹網頁物件的各種相關事件,以及如何利用事件及事件處理程式來產生有趣互動的網頁。 8-1:事件與事件處理器 8-2:捕捉鍵盤與滑鼠事件 8-3:事件列表

8-1:事件與事件處理器 本小節介紹幾個瀏覽器所偵測到的事件與相關動作的範例。

事件 事件 (Events) 通常是指由瀏覽器所偵測到使用者的特定動作,並根據偵測到的事件,來進行相關動作,例如: 使用者點選或移動滑鼠 瀏覽器的載入網頁 「事件處理器」(Event handlers),又稱為 Callback。我們可以在瀏覽器內偵測特定事件,並以事件處理器來做出反應。

瀏覽器常見的事件 列表簡介: onBlur:失去焦點時 onClick:點選某一個物件時 onChange:改變物件選項或字串時 onFocus:得到焦點時 onLoad:瀏覽器載入網頁時 onMousedown:按下滑鼠按鈕時 onMouseover:滑鼠移動經過某個物件時 onMouseup:鬆開滑鼠按鈕時 onSubmit:送出表單資訊時 onUnload:瀏覽器離開網頁時

範例8-1 主題:使用 onFocus 和 onBlur 事件改變文字欄位的內容 連結:onFocus01.htm (remote host, local host) 程式碼重點 說明 this 代表此文字欄位本身。 只要使用者點選文字欄位,onFocus 的事件被啟動。反之,在欄位外任意處點一下,onBlur 的事件就會被啟動。 <input value="請點我!" size=30 onBlur="this.value='唉,又要離我而去了!'" onFocus="this.value='很高興我又成為鎂光燈的焦點了!'">

範例8-2 主題:「送往迎來」 (使用 body 標籤的 onLoad 和 onUnload 屬性,定義載入網頁和離開網頁時必須處理的事件) 連結:onLoad01.htm (remote host, local host) 程式碼重點 說明 當載入網頁時執行alert(string1),離開網頁時執行alert(string2)。 也可以使用 window.onLoad=functionName1 和window.onUnload=function2 來達到同樣的效果。 <body onLoad=“alert(string1)” onUnload="alert(string2)">

範例8-3(1) 主題:打不死的蟑螂 (使用onBeforeUnload,當關閉視窗時,再開啟另一視窗) 連結:foreverCockroach01.htm (remote host, local host) 程式碼重點 It’s not working any more. Who can help? <body onBeforeUnload="openNewWin()"> <script> function openNewWin(){ winName = Math.floor(Math.random()*10000); window.open('foreverCockroach01.htm', winName, 'location=1,toolbar=1,menubar=1,status=1'); } </script>

範例8-3(2) 說明 在視窗被關閉前,執行函式openNewWin()。 使用固定視窗名字將無法開新視窗,因此使用亂數產生winName。 window.open為開啟新視窗並設定新視窗屬性。 強制結束「打不死的蟑螂」: 關閉網路,關掉視窗,再連接網路。 取消 IE 瀏覽器對 JavaScript 的支援:將「工具/網際網路選項/安全性/自訂層級/指令碼處理/Active scripting」暫時改成「停用」,關掉「打不死的蟑螂」視窗,恢復原先設定。 從工作管理員將瀏覽器關閉。 從軟體選項選用「禁止彈出視窗」。

範例8-4 主題:列表各事件的範例 連結:onEvent01.htm (remote host, local host) 說明

8-2:捕捉鍵盤與滑鼠事件 本小節介紹鍵盤與滑鼠事件以及相關範例。

偵測特定按鍵是否被按下 步驟 利用 document.onkeydown 來抓到「按鍵事件」,並指定相關的事件處理程式。 可利用window.event.keycode 得知按鍵代碼,並進行相關的處理。

範例8-5 主題:鍵盤事件的基本測試 連結:keyboardEvent01.htm (remote host, local host) 程式碼重點 說明 使用 onkeydown 事件來執行 keyFunction() 函式。 event.keyCode可知該按鍵代碼。 事件處理程式回傳給 document.onkeydown 的值為 false,則原先按鍵的預設功能將會被取消。 window.event.keycode 可以簡寫成 event.keycode。 document.onkeydown=keyFunction;

定義「熱鍵」 用途 執行特殊功能 做法 為避免覆蓋原有的熱鍵功能,最好使用複合鍵(先按 Shift 或 Ctrl 或 Alt 不放,再按任意鍵)。

範例8-6 主題:偵測複合鍵 連結:keyboardEvent02.htm (remote host, local host) 程式碼重點 說明 用 event.shiftKey 的值是否是 true 來確認 Shift按鍵是否是在被按下的狀態 若不加第二個條件,會印出兩次警告視窗 , 一次是按 Shift,第二次是按其他鍵 CTRL與ALT做法皆同於SHIFT if ((event.shiftKey) && (event.keyCode!=16)) alert("Shift + "+event.keyCode);

範例8-7 主題:作弄人的網頁 連結:keyboardEvent03.htm (remote host, local host) 程式碼重點 說明 使用 input 標籤的 onKeyPress 事件來即時改變使用者的輸入。 用onKeyUp 事件檢查使用者是否完成正確輸入。 <input id=testField onKeyPress="encrypt() " onKeyUp="check() ">

範例8-8 主題:黏住游標的方塊 連結:newCursor01.htm (remote host, local host) 程式碼重點 說明 使用DIV來定義紅色方塊的物件(id=redSquare) ,event.clientX 及 event.clientY 分別代表滑鼠相對應於網頁視窗的 X 和 Y 座標。 使用onmousemove事件,當滑鼠移動同時執行函式。 <body onmousemove="newCursor()"> <script> function newCursor() { redSquare.style.posLeft=event.clientX-10; redSquare.style.posTop=event.clientY-10; } </script>

範例8-9 主題:使用方向鍵來移動物件 連結: squareMover01.htm (remote host, local host) 程式碼重點 說明 使用event.keyCode判定使用者所按的方向鍵,並移動定義的DIV綠色方塊(id=myArea)。 function move(){ ek=event.keyCode; if (ek==37) myArea.style.posLeft-=5; if (ek==39) myArea.style.posLeft+=5; if (ek==38) myArea.style.posTop-=5; if (ek==40) myArea.style.posTop+=5; }

範例8-10 主題:偵測滑鼠鍵 連結: mouseEvent01.htm (remote host, local host) 程式碼重點 說明 定義一個DIV物件為滑鼠事件引發範圍 使用onMouseDown事件,當滑鼠點下執行函式 使用event.button偵測滑鼠按鍵 event.button = 1 ===> 滑鼠左鍵被按下 event.button = 2 ===> 滑鼠右鍵被按下 event.button = 4 ===> 滑鼠中鍵被按下 <div onMouseDown="showMouseButton()"> 請用滑鼠按我!</div>

範例8-11 主題:取消滑鼠右鍵的功能 連結:disableRightButton01.htm (remote host, local host) 程式碼重點 說明 使用 event.button 來偵測滑鼠鍵,如果是右鍵,則以警告視窗嘲笑使用者。並回傳 false,以取消預設之功能。 if (event.button!=1) { alert('哈哈,你別想偷圖,滑鼠右鍵的功能被我取消掉了!') return false;}

8-3:事件列表 本小節整理並列出常用的事件列表。

常用的滑鼠事件 滑鼠事件 說明 onMouseDown 按下滑鼠按鍵 onMouseOver 移動滑鼠游標 onMouseOut 將滑鼠游標移出一個物件 onMouseUp 釋放滑鼠按鍵 onClick 單擊滑鼠按鍵 onDblClick 雙擊滑鼠按鍵

判斷不同滑鼠按鍵 event.button 的值 說明 1 滑鼠左鍵被按下 2 滑鼠右鍵被按下 4 滑鼠中鍵被按下

常用的鍵盤事件 鍵盤事件 說明 onKeyDown 按下鍵盤按鍵 onKeyPress 保持按鍵在按下的狀態 onKeyUp 釋放鍵盤按鍵

常用的其他事件 事件名稱 說明 onBlur 一個物件得到焦點時 onError 產生錯誤時 onFocus 一個物件失去焦點時 onLoad 網頁或物件完全載入時 onReset 一個表單被重設時 onScroll 網頁文件被捲上或捲下時 onSelect 一個選單的選項被改變時 onSubmit 一個表單被提交送出時

以此取消一個事件遞傳(event bubble) 各種事件的相關性質(1) 產生事件之物件的性質 說明 srcElement 產生事件的物件或元素 type 事件的類別 returnValue 以此確認一個事件是否被取消 cancelBubble 以此取消一個事件遞傳(event bubble) clientX 滑鼠游標相對於視窗的 X 座標 clientY 滑鼠游標相對於視窗的 Y 座標 offsetX 滑鼠游標相對於發送事件之物件的 X 座標 offsetY 滑鼠游標相對於發送事件之物件的 Y 座標

各種事件的相關性質(2) 產生事件之物件的性質 說明 button 任一個被按下的滑鼠按鍵 altKey 當 alt 按鍵被按下時,回傳 true ctrlKey 當 ctrl 按鍵被按下時,回傳 true shiftKey 當 shift 按鍵被按下時,回傳 true keyCode 回傳被按下之按鍵的 unicode