
|
JavaScript是什麼? JavaScript是可以在網頁(HTML原始檔)中由瀏覽器直接執行的程式,最先是由網景公司(Netscape)發明,只因當時昇陽(Sun)公司也正在發展 Java,附和潮流稱為 JavaScript,事實上與Java語言沒有直接的關係。微軟公司在Netscape之後設計 IE 瀏覽器,原本使用VBscript(VB的簡化版)為附加程式語言,但因JavaScript已經盛行,也開發了類似JavaScript的語言版本稱為 JScript,兩者非常相似,一般仍以JavaScript一併稱呼。目前我們在微軟設計環境下使用的其實都是JScript。 Script的原意是『草稿』,通常用來形容簡化的程式語言,這類語言執行時多為逐解譯(interpret)成機械碼,一行一行執行,不是整個程式一次編譯(Compile)完成後執行。所以即使程式有錯誤,還是會先執行到錯誤之前的部份。 程式碼的位置 在HTML文件中JavaScript的程式須以: <script language="javascript"> 程式碼 </script> 兩個標籤前後夾住。因為是瀏覽器中預設的程式語言,language那一項不寫也可以! 像這樣: <script> 程式碼 </script> 這些程式碼可以插在<head>或<body>區塊,如果在<body>內基本上會依序執行;在<head>內則必須以函式(function)的方式寫作,由<body>內的物件呼叫使用。 如果是函式(function)的型態,即使寫在<body>內部也不會自動執行,必須被呼叫使用。 亦可寫成獨立的JS程式檔由主網頁檔叫用,如: *.js 檔案是不包含<script>標籤的javascript程式碼,你可以在Web Developer中以『網站』→『加入新項目』的方式建立,或直接用其他純文字檔編輯器編輯。通常用於很多網頁都需要重複使用的程式碼。 |
|
第一個 JS 程式 1.開啟一個新網頁。 2.在<body>的區塊內寫程式如下: ![]() 3.執行預覽,或存檔之後用瀏覽器開啟,會看到網頁上顯示一個『Hello!』 4.請在輸出字串中加入HTML語法,如<H1>Hello!</H1>,或加入置中<center></center>。 如:document.write("<center>Hello!</center></br>Hi!") 你會發現我們可以用 javascript 『寫』出一整張網頁!事實上這是很多互動式網頁常做的事情。 |
|
文件物件模式(DOM) 要寫物件導向的程式首先當然必須先有物件可供操作,在ASP或C#,VB等程式中就是Label,TextBox,GRidView等等,有了物件接下來才有屬性(如Text),方法(如ToString)與事件(如MouseDown滑鼠按下)等等寫程式的依據;在網頁中看起來有很多『東西』,大部分都可以被 javascript 叫用,但是要呼叫它們進入程式運作前必須了解它們的整體架構,以及一些預設的物件名稱,這些規則稱為 Document Object Model (DOM),目前只簡單介紹三個層級: ![]() Window就是瀏覽器視窗,這個物件有很多的屬性方法與事件可以使用,請試試以下的程式(用<script></script>包覆): window.alert("!") //訊息 window.status="Hello!" //狀態列 window.open("http://ycc.dwu.edu.tw"); //開新視窗 window.moveTo(0,0); //移動視窗 Document就是網頁,瀏覽器是鏡框,網頁就是相片,請注意到它們的不同之處,試試看下面的幾個程式碼: document.writeln(document.location); //顯示網址 document.bgColor="green"; //設定背景色 document.writeln(document.defaultCharset); //顯示編碼 Objects就是網頁內部的物件了,先作以下的一個實驗: 1.開啟一個網站,加入一張HTML網頁 2.佈置一個TextBox物件 3.原始碼修改如下:會看到文字盒內出現文字"123" ![]() 說明: A.在此的文字盒與ASP的文字盒不同,不能用VB(伺服端)程式控制,Text1.value="123"是javascript B.文字盒、按鍵或選項等等物件在此都是以 input 作標示,用 type=?? 來區分。 C.呼叫使用時必須用 id 屬性,相當於VB程式中的 name 屬性。 |
|
JS 的數學運算(事件副程式的寫作) javascript與一般程式語言很像,可以做運算,也有按鍵、文字盒與標籤等等物件,在我們使用的Web Developer軟體內都有支援,只是必須分清楚它們都是『客戶端』的物件,程式事實上是在HTML內,也就是在客戶的瀏覽器內執行,與之前我們用ASP做的程式不同,一樣是Button_Click事件,ASP程式是在伺服端作好再傳給網頁,javascript自己在客戶端就搞定了。 步驟: 1.用Web Developer開啟一個專案,加入一個HTML網頁。 2.至工具箱選用一個 Input(Text) 與一個 Input(Button) ....都叫作 Input比較特別。 3.雙擊Button會切換到原始碼畫面,並出現事件副程式框架,寫入程式如下: ![]() 一個簡單的數字平方計算程式就完成了! 說明:parseFloat是將文字轉成有小數點的實數 要做一個完整的加法介面稍微麻煩一點: 1.首先建立如下介面 ![]() 4.等號按鍵寫程式碼如下: ![]() 說明:(a) var是變數,可以是字串或數值;(b)toFixed(n)表示n位小數的數字。 |
| 練習題:製作一個 javascript 的四則運算網頁。 |
|
Radio 單一選項程式 1.在HTML網頁佈置單選物件兩個 Radio,一個 Iimage 如下: ![]() 2.寫程式如下: ![]() 說明: A.選擇 Radio1 或 Radio2 時分別將 id = "img0" 的影像物件來源(src)定為網路上的一張圖的網址。 B. img 的 id 必須手動寫入,不是預設值。 C. onclick 對應的事件也一樣。 |
|
其他互動物件 javascript 的特性之一是程式碼是完全公開的,所以開啟網頁後檢視原始碼即可看到程式,下面是一個網頁連結,展示許多互動物件,就去看看它們的程式怎麼寫的吧!記住他們都只是HTML,不是ASP網頁哦! http://ycc.dwu.edu.tw/S2/RadioCheck.htm |
|
鍵盤事件 JS也可以回應鍵盤或滑鼠事件,下面是一個用鍵盤的上下左右鍵移動視窗的小程式 ![]() 說明: 1. document.onkeydown=keyfunction表示當網頁(document)上面有鍵盤事件(keydown)時交給函式 keyfunction處理。 2. Text1.value=event.keyCode 顯示出你按下鍵盤的鍵盤碼(keyCode) 3. swith ( ) 選擇式依據你按的鍵盤移動視窗→ window.moveBy(x,y) |
|
滑鼠事件(位置) 下面是一個顯示滑鼠位置的程式: 1.佈置物件如下,黃色部份是一個圖層(div)物件,改變背景顏色作為滑鼠移動偵測的區域。 注意:網頁中沒有物件的區域是無法偵測滑鼠位置的。 ![]() 2.程式碼如下: ![]() |
|
JS 小時鐘 1.開啟另一個網頁(HTML)佈置如上範例的一個Text1與 Button1 2.在Button1事件寫程式如下: ![]() 3.執行網頁按一下按鍵,可以看到一個小時鐘在Text1中跑。 這是一個遞迴的程式,執行一個顯示時間的動作之後,設定一秒鐘後時間到再執行一次。 4.將上述程式的名稱改掉,變成 JSclock() ![]() 5.在<body>標籤內加入指令→ <body onload=JSclock()> 這個網頁會一開始就自動執行小時鐘。 |
|
|