由於剛開始學習B/S編程,下面對各種指令碼語言有一個宏觀的簡單認識。
指令碼語言(JavaScript,Vbscript,JScript等)介於HTML和C,C++,Java,C#等程式設計語言之間。它的優勢在於代碼執行時不用像程式設計語言那樣必須經過“編譯”,先產生二進位機器碼再執行,而是由其所對應的解譯器(或稱虛擬機器)直接解釋執行。程式碼既是指令碼程式,亦是最終可執行檔。
曆史:
JavaScript是一種指令碼語言。前身為LiveScript,是Netscape開發的一種描述式語言。自Sun公司推出Java之後,Netscape公司引入了Java中物件導向的一些概念,重新進行設計,並取名為JavaScript。
雖然它裡面還有一個“Java”,但其實和Java並無多大關係。Java是一種物件導向的語言,而Javascript是基於對象以及事件的。Javascript是運行在瀏覽器端的解釋性語言,用於產生一些動態效果或者用於對HTML表單進行驗證等。
在HTML中,使用<Script>標記的language屬性指定指令碼語言的類別。例:<Script language=”javascript”> ……</Script>。Language可以為“JavaScript”、“VBScript”或者“JScript”中的一種。
VBScript是微軟以VB為藍本開發的一種指令碼語言,它目前主要用在伺服器端作為ASP的指令碼語言;JScript是微軟在JavaScript基礎上做了一些擴充後的一種指令碼語言,它只可以在MS IE中被使用;JavaScript是最為通用的,如果沒有指定language屬性,則預設為“JavaScript”。
下面對最常用的JavaScrip常用內建對象t做一些介紹:
常用內建對象:Window對象:
是所有其它對象的“祖先”,對一個window對象的引用方法取決於它與當前位置的關係。這個對象最常用的地方在於從一個視窗中新開一個視窗。
基本文法為:[new window=]window.open(url,windowName[,windowPros]);其中表示這個新開視窗對象的變數名稱;windowName是這個新開視窗的名稱;windowPros是這個新開視窗的屬性(用於設定新開視窗的外觀);註:如果沒有指定新開視窗的屬性,那麼新開視窗的屬性就按照父視窗的屬性設定。
例如:
<script language="javascript"> window.open("JStest1.htm", "newwindow", "height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no"); </script>
Document對象:
document對象包含當前文檔的資訊,例如:標題、背景、顏色、表格等。
常用方法:
(1) 通過write()/writeln()方法在瀏覽器中顯示內容。
(2) 獲得當前文檔中的元素、屬性和節點資訊(例如:通過“document.formName”來獲得表示頁面中的表單名稱為fromName的表單對象)。
(3) getElementById()和getElementByTagName()。這兩個方法會忽略文檔的結構,可尋找整個HTML文檔中的任何元素(不論它們在文檔中所處的位置,例如通過getElementByTagName()可以把文檔中所有的<p>元素找到)。
舉例:
<html><head><script type="text/javascript"> function message() { var label = document.getElementById("test") label.innerText = "kobe bryant" }</script></head><body> <input id="test" type="text" style="border-color:Red"/><br /> <input type="button" value="確定" onclick="message()"/></body></html>
From對象:
Form對象是document下的一個子物件,表示表單對象。一個文檔中的每一個表單都是獨立的、互不關聯的對象。可以使用document.formName或者document.forms[index]的方式來獲得對某個form的引用(index的值在0到此文檔中form個數減一之間)。得到form對象後,就可以用它來獲得form中各個表單元素。
例:當使用者點擊確定按鈕時,document.frm.userName.value將把表單元素userName文字框的值傳給checkuserName函數的參數。
測試:
<html><head> <title>訪問HTML元素</title></head> <script language="javascript" type="text/javascript"> function checkuserName(username) { var label = document.getElementById("errorMsg"); if (username.length < 6) { label.innerText = "使用者名稱的長度必需大於6位"; } else { label.innerText = ""; } } </script><body> <form name="frm" method="post" action=""> 使用者名稱:<input type="text" name="userName"/><label id="errorMsg"></label><br/> 密碼: <input type="password" name="password"/><br> <input type="button" value="確定" onclick="script:checkuserName(document.frm.userName.value)"/> <input type="reset" value="取消"/> </form></body></html>