JavaScript是由Netscape Communication與Sun Microsystem兩家公司所共同開發網頁瀏覽器專用的Script語言,在IE中稱為Jscript。無論是 JavaScript 或是 JScript,都滿足 ECMA(European Computer Manufacturer's Association,歐洲電腦製造商協會)所提出來的標準,滿足此標準的語言稱為 ECMAScript,當初 Netscape 和微軟也都有參與此語言的制訂。
JavaScript是一個直譯型、並以物件為基礎的 Scripting 語言。JavaScript並不是另一個語言的縮減版 (它與 Java 之間並沒有什麼直接關連),而且也不是其他任何軟體的簡化版。不過,它仍有一些限制。舉例來說,您無法使用它撰寫一些獨立式應用程式,而且它也沒有檔案讀寫與安全與繪圖的功能。
JavaScript甚至只能在直譯程式或"主機"上執行,如Active Server Pages (ASP),Internet Explorer,或Windows Script Host。
JavaScript的語言型態並不嚴謹(Dynamically typed),這表示您不需要非常明確地宣告變數的資料型態。JavaScript是跟HTML混合在一起的程式,可以在頁面上做出即時的特效,它會隨著網頁下載到你的電腦,然後瀏覽器自動執行跟HTML程式混在一起的JavaScript程式,做出特效來。
javascript的撰寫在不同瀏覽器上的表現都有些許差異, 一般而言, IE對於錯誤的程式碼容忍度較高, Mozilla則較為嚴謹
在指定瀏覽器上的表單物件時,IE可不指定document,而 mozilla則否, 例如mozilla需指定為 document.forms.text.value , 而IE可簡寫為 forms.text.value ,但還好我們可以先用一個變數來取代指定的麻煩, 如
行內宣告 <script language="JavaScript"> <!-- script //--> </script> |
預防瀏覽器不支援 <!-- --> 不讓-->成為JavaScript的一部份,需加入// |
宣告依版本而有不同 <script language="JavaScript"> <script language="JavaScript1.1"> <script language="JavaScript1.2"> <script language="JavaScript1.3"> <script language="JavaScript1.4"> <script language="JavaScript1.5"> <script language="JScript"> |
嵌入宣告 <script language="JavaScript" src="外部的.js檔案URL"> </script> |
行內宣告 <script type="text/javascript"> <!-- script //--> </script> |
預防瀏覽器不支援 <!-- --> 不讓-->成為JavaScript的一部份,需加入// |
<script type="text/javascript"> </script> |
嵌入宣告 <script type="text/javascript" src="外部的.js檔案URL"> </script> |
<noscript>本網頁使用了JavaScript</noscript>
javascript程式碼 | 瀏覽器畫面 |
---|---|
<html> <body> <script type="text/javascript"> </body> |
Hello World! |
javascript程式碼 | 瀏覽器畫面 |
---|---|
<html> <body> <script type="text/javascript"> </body> |
Hello World! |
javascript程式碼 | 瀏覽器畫面 |
---|---|
<html> <head> <script type="text/javascript"> function message() { alert("This alert box was called with the onload event") } </script> </head> <body onload="message()"> </body> |
javascript程式碼 | 瀏覽器畫面 |
---|---|
<html> <head> </head> <body> <script type="text/javascript"> </body> |
This message is written when the page loads |
字串 |
字串值是一串由 0 個或 0 個以上的 Unicode 字元(字母,小數點和標點符號)結合而成。 雙括號可以包含在括在單括號的字串裡,而單括號也可以包含在括在雙括號的字串裡。 |
s="Happy am I; from care I'm free!"; s='"Avast, ye lubbers!" roared the technician.'; s="42"; s='c'; s=""; |
數字 |
Jscript 中的整數和浮點值並無明顯區分;兩者都可以作為 JScript 數字 (JScript 內部把所有的數字表示成浮點值)。 特殊數值 |
.0001; 0.0001; 1e-4; 1.0e-4; 0378; 0377; 0Xff |
布林 |
布林資料型態卻只能有 2 種值,那就是 true 和 false。 |
flag=true; flag=false; flag = (x == 2000); |
Null |
一個包含null的變數,就是"無值" 或 "無物件"。換句話說,它是無效的數字、字串、布林值、陣列、或物件。您可以指定變數的值為null以刪除這個變數的內容,但又不刪掉這個變數。 JScript 的null 資料型態只有一個值:null。null 關鍵字不能拿來作為一個函數或變數的名稱。 |
Undefined |
遇到下列情況,會傳回未定義的值。也就是使用: 不存在的物件屬性 |
if (typeof(x) == "undefined") ................. var currentCount; |
物件 |
|
hobby=["聽音樂","看電影"] |
陣列 |
|
區域變數 | var 變數名; | |
全域變數 | 變數名; |
單一宣告 | var name; | |
多變數同時宣告 | var name,sex; | |
宣告時並賦予初值,否則其值為undefined | var name="peter",sex="女"; | |
雖然變數型態不同,宣告方式都一樣 | var num=30,flag=true; |
區分大小寫 |
var x; var X |
第一個字元必須是ASCII字母 (大小寫皆可)、底線 (_)字元 |
var _x; var x_1 |
複合字的第一個字建議要大寫 |
var MyFriend; |
變數名稱不能為保留字 |
上一頁 | javascript:window.history.go(-1) | javascript:window.history.back() |
下一頁 | javascript:window.history.go(1) | javascript:window.history.forward() |
重新整理 | javascript:location.reload() | |
列印 | javascript:window.print() | |
開啟視窗 | javascript:window.open() | |
關閉視窗 | javascript:window.close() |
屬性名稱 | 說明 | 是否可讀寫 |
---|---|---|
defaultstatus | 網頁載入完成後,狀態列上的預設文字 | 讀/寫 |
status | 目前視窗狀態列上的文字 | 讀/寫 |
history | 已經瀏覽過的URL資料 | 讀 |
length | 傳回集合裡的元件數目 | 讀 |
location | 網頁裡的URL位址 | 讀/寫 |
name | 視窗名稱 | 讀 |
navigator | 瀏覽器資訊 | 讀 |
document | 瀏覽器內的網頁文件 | 讀 |
opener | 傳回目前開啟著的物件 | 讀 |
closed | 目前視窗是否關閉 | 讀 |
parent | 目前視窗的母視窗 | 讀 |
self | 目前視窗 | 讀 |
top | 最上層視窗 | 讀 |
方法 | 說明 |
---|---|
alert | 開啟警告對話框 |
blur | 讓網頁失去焦點 |
clearinterval | 取消setinterval的作用 |
cleartimeout | 取消settimeout的作用 |
close | 關閉瀏覽器視窗 |
confirm | 開啟確認對話框 |
execscript | 執行某個script,預設為javascript |
focus | 讓網頁取得焦點 |
navigate | 連結到其他網頁 |
open | 新增瀏覽器視窗 |
prompt | 開啟輸入對話框 |
scroll | 將網頁視窗捲動X位移與Y位移 |
setinterval | 固定的毫秒時間間隔來反覆執行某個函數 |
settimeout | 固定的毫秒時間後執行某個函數 |
showhelp | 開啟對話框 |
showmodaldialog | 開啟modal視窗 |
事件 | 說明 |
---|---|
onload | 載入網頁時發生 |
onunload | 離開網頁時發生 |
onfocus | 視窗取得焦點時發生 |
onblur | 視窗失去焦點時發生 |
onhelp | 按下F1按鍵時發生 |
onresize | 使用者調整視窗大小時發生 |
onscroll | 使用者滾動視窗前後時發生 |
onerror | 載入網頁後出現錯誤時發生 |
<script language="JavaScript" type="text/javascript"> <!--
function check_intkey(key){
if (key>=48 && key<=57) {
return true;
} else {
return false;
}
}
//--> </script>
<input type="text" name="birthday" onKeypress="return check_intkey(event.keyCode)" />
<script language="JavaScript" type="text/javascript"> <!--
function fild_valid(obj){
var re = /^/d+$/;
if (obj.value!="" && !re.test(obj.value)) {
alert("您必須輸入數字喔");
obj.select();
return false;
} else {
return true;
}
}
//--> </script>
<input type="text" name="birthday" onBlur="fild_valid(this)" />
<script language="JavaScript" type="text/javascript"> <!--
function fild_center() {
var e = event.srcElement ;
var r = e.createTextRange() ;
r.moveStart('character',e.value.length) ;
r.collapse(true) ;
r.select() ;
}
//--> </script>
<input type="text" name="address" onClick="fild_center()" />
<script language="JavaScript" type="text/javascript"> <!--
function addClipboard2(obj) {
var r = obj.createTextRange() ;
r.execCommand("Copy") ;
}
//--> </script>
<input type="text" id="address" onClick="addClipboard2(this)">
<script language="JavaScript" type="text/javascript"> <!--
for( var i = 1; i<= 40; i++ ) {
if ( typeof( eval( "document.tform.chk"+i ) ) == "undefined" ){
break;
}
if (eval("document.tform.chk"+i+".value")=="Y") {
.......................
}
}
//--> </script>
<select name="chk1" > <option value="Y">是</option> <option value="N">否</option> </select>
<select name="chk2" > <option value="Y">是</option> <option value="N">否</option> </select>
.........
...假設一頁最多有40個select,或可能不足40個
........
<select name="chk40" > <option value="Y">是</option> <option value="N">否</option> </select>
<script language="JavaScript" type="text/javascript"> <!--
function AntiSpam(Name, Domain) {
location.href = 'mailto:' + Name + '@' + Domain
}
//--> </script>
<a href="javascript:AntiSpam('peterju','pchome.com.tw');">聯絡作者</a>