網頁標題: 事件與物件
 



事件與物件

事件  可捕捉到物件  發生時機  事件處理器
Abort  images  載入圖片中斷  onAbort
Blur  windows及所有的form物件  輸入焦點移開物件本身時,例如跳至別的輸入欄位,或者是利用TAB跳至下一個輸入欄位。  onBlur
Change  text fields, textareas,
select list  當物件輸入欄位內容改變時。  onChange
Click  buttons, radio buttons,
checkboxes, sumbit buttons, reset buttons, links  物件被滑鼠點一下時。  onClick
DragDrop  windows  托曳一個物件(例如檔案)到瀏灠器上時。  onDragDrop
Error  images, windows  載入圖片或文件發生錯誤時。  onError
Focus  windows及所有的form物件  輸入焦點移至該物件本身時,例如在文字輸入欄上點一下,或者是利用TAB將游標移至文字輸入欄內準備鍵入資料。  onFocus
KeyDown  documents, images, links, text areas  放開一個按鍵時。  onKeyDown
KeyPress  documents, images, links, text areas  按下一個鍵,或按住一個鍵不放時。  onKeyPress
KeyUp  documents, images, links, text areas  放開一個按鍵時。  onKeyUp
Load  document body  載入文件時。  onLoad
MouseDown  documents, buttons, links  按開滑鼠按鍵時。  onMouseDown
MouseMove  nothing by default  滑鼠移動時。  onMouseMove
MouseOut  areas, links  滑鼠移開一個鍊結或圖片時。  onMouseOut
MouseOver  links  滑鼠移到一個超鍊結上方時。  onMouseOver
MouseUp  documents, buttons, links  放開一個滑鼠按鍵時。  onMouseUp
Move  windows  移開視窗時。  onMove
Reset  forms  按下form裡的reset按鈕時。  onReset
Resize  windows  改變視窗大小時。  onResize
Select  text fields, textareas  選取文字時。  onSelect
Submit  forms  按下form裡的submit按鈕時。  onSubmit
Unload  document body  離開文件時。例如按下超鍊超。  onUnload

使用FrontPage插入JavaScript
JavaScript編輯窗

雖然FrontPage沒有很強大的JavaScript編輯環境,不過FrontPage提供的JavaScript編輯功能倒是一個蠻方便的JavaScript管理程式。

  現在我們利用JavaScript來插入一段JavaScript程式碼。

  在FrontPage Editor選則插入JavaScript,如圖。
  選取Insert->Advanced->Script...

然後可以看到一個編輯視窗。Language點選JavaScript,然後我們在Script編輯區裡打上一行簡單的程式。

按一下OK後預瀏文件,可以看到畫面出現Hello!。我們可以利用這個功能直接插入JavaScript,而且FrontPage會自動幫我們填入相關的HTML標籤,我們只要直接輸入程式碼即可,非常方便。

如果要修改之前的JavaScript,方法為:

1.  確定有開啟段落提示。
2.  在JavaSript的提示圖示上按滑鼠右鍵,即 (滑鼠移到上面時會出現機器人)
3.  在屬性視視上選Java Properties...

  即可編輯已存在的JavaScript程式。直接使用Insert->Advanced->JavaScript...的話表示要新增JavaScript。

JavaScript Wizard

JavaScript精靈可以讓我們很方便的為Event插入Action。點選JavaScript Wizard後可以看到一個JavaScript Wizard,我們就是要藉由精靈的幫助,來插入我們的JavaScript程式碼。

這就是JavaScript Wizard

我們可以從1.Select an Event裡選擇Event,然後在2.Insert Actions裡為這個事件選用Action。

把Event裡的window展開後點onLoad(文件載入時觸發)。

onLoad會變成藍色背景,然後再把Action裡的window展開,再展開document,在bgColor上點二下,或者點一下再按底下編輯功能鈕InsertAction,表示我們要做的動作就是為onLoad這個事件處理器填入改變window.document.bgColor這個屬性的程式碼,即背景顏色。之後會跳出一個視窗。


在文字欄裡輸入顏色的十六進位字串,或者按下Color這個按鈕,可以直接選取顏色,FrontPage會自動幫我們填入相對應的字串。按下OK後就可以在程式碼視窗裡看到對應的程式碼。

利用功能按鈕可以修改程式。
現在,onLoad左邊的小菱形會變成實心,表示我們已定義了這個Event的Acion。同樣的做法,我們可以利用Wizard為不同的Event選取Action,當這個Action需要輸入額外的字串時(通常是參數或一個值),就會自動出現一個視窗,否則就會直接將程式碼插入。利用工具按鈕可以修改程式碼。假設我們要修改windows.document.bgColor的屬性,我們可以在這一行點兩下,或者點一下後按Modify Value按鈕即可。

把顯示模式切換成Code View就可以看到真正的JavaScript程式碼。




  在CodeView模式下,我們可以直接在編輯區裡修改程式碼。切換成ListView模式後又會變成對應的CodeView模式。

在HTML模式下可以看到FrontPage自動幫我們填入的JavaScript程式碼:



New Page 1


  按一下OK,再預覽,當文件載入時即可觸發這個事件。結果是,整個畫面背景變成紅色了!

函數的撰寫

選取Insert->Advanced->Script...後,我們在Scritp編輯區內編輯可以編輯函數,我們來設計一個簡單的函數。

後然再進入Wizard,可以發現,在Action的地方多出了Procedures的資料匣,展開後可以找到我們之前寫的function,表示說,Event也可以接定我們自己寫的function。

習慣上,我們將所有的functions寫在同段落,也就是同一個JavaScript的圖示裡,不分成許多個段落(圖示),理由是維護較容易。或者把同類別、性質相同的functions寫在同一個段落裡,也是一個好習慣。

  每個段落就是一個獨立的標籤。
全域變數的宣告
除了functions外,精靈也可以幫我們管理全域變數。宣告在底下這二個地方的變數皆視為全域變數:

  宣告於function外,如:
var hello="歡迎光臨!!"
function () {
  window.alert(hello)
}

var hi="Hello!!"
window.alert=(hi)

以上的hello和hi都是全域變數。

  宣告於獨立段落者,也就是把變數宣告在一個段落裡,該段落內沒有程式碼或function。

進入精靈後,在Actions可以看到一個Globe Variables的資料匣,展開後可以看到所有的全域變數,通常我們都是對全域變數指定一個字串(值),所以點選全域變數後會出現輸入資料的對話視窗。

  要注意一點,如果我們直接輸入一個字串,那表示這是一個變數名稱,所以要符合變數命名規則,否則會出現錯誤,如果要輸入字串資料,只要加上"雙引號即可。

  另外,記得將顯示規式(編輯模式)切換成List View!才能使用交談式介面,如果使用Code View我們就必須可行輸入程式。

輸入 Welcome!! 發生錯誤


JavaScript的物件

  anchor
Property  Method  Event
無  無  無

可產生anchor物件的HTML標籤
說明
一個鍊結的物件。

  在一個HTML文件中,所有的anchor要經由document的anchors屬性來讀取,這是一個陣列,所以,假設有三個anchor物件被建立,我們可以使用這樣的命令來讀取第一個被建立的anchor物件:document.anchors[0] 。

  button
Property  Method  Event
name
value  click()  onClick

Property  說明
name  button物件的名稱,這裡所謂的名稱並不是Value/Lable
,在按鈕上的文字叫做Value或Label,name是物件的名稱;這點還要讀者多加留意。

當我們讀取button物件的name時,會傳回button物件的名稱,型態是字串。

在畫面上的Button:


value  按鈕的提示字串。
Method  說明
click()  和滑鼠在button上點一下的作用相同。

可產生button物件的HTML標籤
說明
一個按鈕的物件。

範例
  

  checkbox
Property  Method  Event
checked
defaultchecked
name
value  click()  onClick

Property  說明
checked  當這個值為true時,代表核對盒被選取。
defaultchecked  核對盒的初始狀態。
name  核對盒物件名稱。
value  核對盒的值
Method  說明
click()  和滑鼠在button上點一下的作用相同。可選取,或取消選取核對盒。

可產生checkbox物件的HTML標籤
說明
一個核對盒物件。在網頁上一個方型的框框,有多選功能,可以讓我們選擇要或不要,對或錯等等。

範例

  Date
Property  Method  Event
無  GetDate()
GetDay()
GetHours()
GetMinutes()
GetMonth()
GetSeconds()
getTime()
getTimeZoneOffset()
getYear()
go()
parse()
parseInt()
setDate()
setHours()
setMinutes()
setMonth()
setSeconds()
setYear()
setTimeout()
toString()
toGMTString()
toLocaleString
UTC()
SetTimesetYear()
Small()
ToLowerCase()
ToUpperCase()
writeln()  無

Method  說明
GetDate()  
GetDay()  
GetHours()  
GetMinutes()  
GetMonth()  
GetSeconds()  
getTime()  
getTimeZoneOffset()  
getYear()  
go()  
parse()  
parseInt()  
setDate()  
setHours()  
setMinutes()  
setMonth()  
setSeconds()  
setYear()  
setTimeout()  
toString()  
toGMTString()  
toLocaleString()  
UTC()  
SetTimesetYear()  
Small()  
ToLowerCase()  
ToUpperCase()  
writeln()  

可產生Date物件的HTML標籤
無。

說明
  一個日期的物件類別。

。Date以毫秒為單位,儲存自 January 1, 1970 00:00:00之後的時間。這是一個JavaScript提供的物件類別,和一般的C++產生物件一樣,我們可以這樣產生一個Date的物件:

var date = new Date(參數)

參數有下列幾種形態:

1.  不傳入參數:Date物件的日期與時間就是目前的日期與時間。

2.  傳入字串:格式為"Month Day, Year hours:minutes:seconds"
例如 var MyBirthday = new Date("July 21, 1980 15:00:00");
或者 var MyBirthday = new Date("July 21, 1980");
我們只能把時間省去,而且自動會被設為零。

3.  傳入數值:格式為year,month,day,hours,minutes,seconds
例如 var XMAS = new Date(1999,12,25,20,0,0);
或者 var XMAS = new Date(1999,12,25);
跟傳入字串相同,我們只能省略時間,並且也會被自動設為零。

範例

  document
Property  Method  Event
alinkColor
anchors
bgColor
fgColor
forms
lastModified,
linkColor
links
location
referer
title
vlinkColor  clear()
close()
parse()
open()
write()
writeln()  無

Property  說明
alinkColor  已鍊結過的超鍊結文字顏色。
anchors  anchor物件的陣列,document.anchors[]裡每個元素都是一個anchor物件。
bgColor  文件的背景顏色。
forms  form物件的陣列,document.forms[]裡每個元素都是一個anchor物件。
lastModified  唯讀屬性,存放文件最後被修改的日期。
linkColor  超鍊結文字顏色。
links  link物件的陣列,document.links[]裡每個元素都是一個links物件。
location  文件的完整URL位址。請參閱location物件。
referer  當我們鍊結到其它文件時,referer屬性會存放原來的URL位址。
title  文件標題。
vlinkColor  已經參觀過的超鍊結文字顏色。
Method  說明
clear()  
close()  
parse()  
open()  
write()  
writeln()  

可產生document物件的HTML標籤
無。

說明
文件物件。當一個HTML文件被載入時,即產生這個物件。

  文件物件紀錄了文件的相關資訊及內容,例如標籤裡的title、location,及主體內的表格、鍊結等,我們可經由他的Properties來取得這些資訊。
範例


  form
Property  Method  Event
action
elememts
method
name
target  sup()
submit()  onSubmit

Property  說明
action  
elememts  
method  
name  
target  
Method  說明
sup()  
submit()  

可產生form物件的HTML標籤
說明
一個表單物件。內含有checkbox,radioButton,select等物,可以讓我們輸入文字、選擇元件,並透過表單傳送資料到伺服器,或由伺服器獲取資訊。

一份文件可能會有多個form物件,這些form物件會被存成陣列,因為form物件的祖先是document,所以我們可以這樣來讀取第n個form物件:

  document.form[n];

範例


  frame
Property  Method  Event
frames
parent
self
top  alert()
clear()
Timeout()
close()
confirm()
open()
prompt()
setTimeout()
submit()  無

Property  說明
frames  
parent  
self  
top  
Method  說明
alert()  
clear()  
Timeout()  
close()  
confirm()  
open()  
prompt()  
setTimeout()  
submit()  

可產生frame物件的HTML標籤
說明
我們可以把一個視窗切割成多個視窗,每個視窗就是一個frame。

若有多個分割視窗,這些frame物件會被存成陣列。因為格個子視窗不會互相溝通,所以我們要經由他的parent來間接存取frame物件,因此,第n個frame物件的存取方法為:

parent.frames[n];

  frame1經由parent存取frame2,fram1與fram2之間沒有通道。凡是產生這些frame的文件即為他們的parent,也就是含有標籤的文件。
範例


  hidden
Property  Method  Event
name
value  無  無

Property  說明
name  
value  

可產生hidden物件的HTML標籤
說明
表單(form)中被隱藏的文字物件,通常被用來傳送資料用的,submit後會和其它資料一起被傳送。

範例


  history
Property  Method  Event
length  back()
forward()
go()  無

Property  說明
length  
Method  說明
back()  
forward()  
go()  

可產生history物件的HTML標籤
無。

說明
  history包含我們載入HTML文件後的資訊,包括目前看過的文件標題和URL。可以經由navigator的go method來讀取。

範例


  link
Property  Method  Event
target  back()
forward()
go()  onClick
onMouseOver

Property  說明
target  
Method  說明
back()  
forward()  
go()  

可產生link物件的HTML標籤
說明
  文件中的超鍊結物件。多個link物件被存成陣列,可經由document這個祖先來存取,例如document.links[0];陣列中的存放關係以循序載入順序為主。

範例


  location
Property  Method  Event
hash
host
hostname
href
pathname
post
protocal,
search  無  無

Property  說明
hash  
host  
hostname  
href  
pathname  
post  
protocal,  
search  

可產生location物件的HTML標籤
無。

說明
location物件包含目前的URL相關資訊。許多物件都有繼承這個物件類別,像是parent,所以我們可以這樣改變其它視窗的URL,以鍊結到其它的HTML文件:

  parent.frame[0].location.href = http://210.70.111.18/;

  location的href屬性紀錄目前的文件超鍊結位址。

範例


  Math
Property  Method  Event
E
LN2
LN10
PI
SQRT1_2
SQRT2
SQRT1  abs()
acos()
asin()
atan()
ceil()
cos()
exp()
floor()
log()
max()
min()
pow()
random()
round()
sin()
sqrt()
tan  無

Property  說明
E  
LN2  
LN10  
PI  
SQRT1_2  
SQRT2  
SQRT1  
Method  說明
abs()  
acos()  
asin()  
atan()  
ceil()  
cos()  
exp()  
floor()  
log()  
max()  
min()  
pow()  
random()  
round()  
sin()  
sqrt()  
tan()  

可產生Math物件的HTML標籤
無。

說明
Math是JavaScript內建的數學運算物件。

有時要用到Math的運算method時,像是:

r = Math.log(3);
y = r*r*Math.PI;

需要打很多Math.*的指令,因為我們可以利用with的語法來使程式更簡潔、方便:

with(Math) {
r = log(3);
y = r*r*PI;
}

表示我們所用到的method或properties都是在(with) Math物件裡。其它物件也可以有相同的做法,不過在Math的物件上使用頻率會比較高,故特別提起。

範例


  password
Property  Method  Event
E
index
length
name
vlinkColor
defaultValue
value  blur()
focus()
select()  無

Property  說明
E  
index  
length  
name  
vlinkColor  
defaultValue  
value  
Method  說明
blur()  
focus()  
select()  

可產生password物件的HTML標籤
說明
  表單裡文字輸入欄型態為password的物件,輸入的字元會以*號取代。

範例


  radioButton
Property  Method  Event
checked
defaultchecked
name
value
index
length  click()  onClick

Property  說明
checked  
defaultchecked   
name  
value  
index  
length  
Method  說明
click()  

可產生radioButton物件的HTML標籤
說明
  表單的選用鈕物件。具單選功能,同一個群組(name)的選用鈕群只能有一個被選用。

範例


  reset
Property  Method  Event
name
value  click()  onClick

Property  說明
name  
value  
Method  說明
click()  

可產生reset物件的HTML標籤
說明
  重置鈕,表單被型態為RESET的按鈕,也就是"清除"、"重新填寫"之類的按鈕。重置鈕會被該表單內所有的物件都重置到初始狀態。

範例


  select
Property  Method  Event
defaultSelected
length
option
selectedIndex
text
value
default
Selected
index  click()
blur()
focus()  onBlur
onChange
onFocus

Property  說明
defaultSelected  
length  
option  
selectedIndex  
text  
value  
default  
Selected  
index  
Method  說明
click()  
blur()  
focus()  

可產生select物件的HTML標籤
說明
表單裡的選擇列或捲軸列。選擇列只能選擇一個項目,而捲軸列則可以選擇多個項目。

被選擇的項目存放於option屬性裡,多個項目的話一樣是被存成陣列,例如有一個order的select物件,被選擇的項目有3個,則第2個項目被存放於order.options[1]


範例


  string
Property  Method  Event
length  anchor()
big()
blink()
bold()
charAt()
fixed()
fontsize()
indexOf()
italics()
lastIndexOf()
link()
small()
strikesub()
substring()
sup()
toLowerCase()
toUpperCase()  無


Property  說明
length  
Method  說明
anchor()  
big()  
blink()  
bold()  
charAt, ()  
fixed()  
fontsize()  
indexOf()  
italics()  
lastIndexOf()  
link()  
small()  
strikesub()  
substring()  
sup()  
toLowerCase()  
toUpperCase()  

可產生string物件的HTML標籤
無。

說明
在JavaScript裡,只要我們用字串當變數、常數或屬性,就會產生一個字串物件,例如:

var Name = "Jollen";

  Name就是一個字串物件。

範例


  submit
Property  Method  Event
name
value  click()  onClick

Property  說明
name  
value  
Method  說明
click()  

可產生submit物件的HTML標籤
說明
  在表單被,型態為SUBMIT的按鈕物件。submit按鈕就是一般像是"送出"、"貼上"、"完成"之類的按鈕,告訴瀏灠器去執行action指定的動作,若沒有指定acion,則會執行reload這個動作,即重新開啟網頁。

範例


  text
Property  Method  Event
defaultValue
name
value  blur()
focus()
select()  onBlur
onChange
onFocus
onSelect

Property  說明
defaultValue  
name  
value  
Method  說明
blur()  
focus()  
select()  

可產生text物件的HTML標籤
說明
  表單裡的文字輸入欄,文字輸入欄可以讓我們輸入一行資料。

範例


  textArea
Property  Method  Event
defaultValue
name
value  blur()
focus()
select()  onBlur
onChange
onFocus
onSelect

Property  說明
defaultValue  
name  
value  
Method  說明
blur()  
focus()  
select()  

可產生textArea物件的HTML標籤
說明
  表單被的文字輸入方塊,文字輸入方塊可以讓我們輸入多行的資料,例如留言板的留言。

範例


  window
Property  Method  Event
defaultStatus
frames
parent
self
status
top  alert()
clearTimeout()
close()
confirm()
open()
prompt()
setTimeout()  onLoad
onUnload

Property  說明
defaultStatus  
frames  
parent  
self  
status  
top  
Method  說明
alert()  
clearTimeout()  
close()  
confirm()  
open()  
prompt()  
setTimeout()  

可產生window物件的HTML標籤
無。

說明
window物件是所有物件的根本,由window物件開始衍生出其它物件,例如document、frame等。

前面提過,多個frame被存放陣列,各個frame間無法互相存取,必須經由parent,但我們有另外一種做法,因為window物件是所有物件的根本,所以也可以像這樣來存取各個frame:

window.frames[n];

範例


  navigator
Property  Method  Event
appCodeName
appName
appVersion
userAgent  無  無

Property  說明
appCodeName  
appName  
appVersion  
userAgent  

可產生navigator物件的HTML標籤
無。

說明
navigator物件是一個內建,而且獨立的物件,沒有衍生其它的物件,主要只是用來存放目前瀏灠器的相關資訊,例如版本資訊(appVersion屬性)。

範例



練習題


New Page 1

請選擇背景顏:


                                                 

回 · 基礎JAVASCRIPT教學 .01、JavaScript 簡介 這一篇文章封面


本文張貼者:校校鴿〔張貼時間:民國98年12月24日(星期四)21點53分〕 | 寫信給校校鴿

部落格首頁


學習的故鄉首頁
本站公告:〔您越需要我們,我們就越有創意〕 本站說明書:〔發現故鄉還有改進的地方,請來信告訴原丁們〕
觀察應用學習點數 :〔咱的故鄉有您的參與,會使我們有更大的發揮空間,展現更豐富精彩的學習畫面〕 〔期待藉由無障礙網頁設計,能讓視障小朋友更愛看書、更愛寫作且更愛學習〕:盲用電腦「心得分享」
〔為了讓我們有乾淨的學習環境,請勿任意在本站散播商業廣告與不合法文件或聯結〕:本站宣示