·字元串
1.聲明
var myString = new String("Every good boy does fine.");
var myString = "Every good boy does fine.";
2.字元串連接配接
var myString = "Every " + "good boy " + "does fine.";
var myString = "Every "; myString += "good boy does fine.";
3.截取字元串
//截取第 6 位開始的字元
var myString = "Every good boy does fine.";
var section = myString.substring(6); //結果: "good boy does fine."
//截取第 0 位開始至第 10 位為止的字元
var myString = "Every good boy does fine.";
var section = myString.substring(0,10); //結果: "Every good"
//截取從第 11 位到倒數第 6 位為止的字元
var myString = "Every good boy does fine.";
var section = myString.slice(11,-6); //結果: "boy does"
//從第 6 位開始截取長度為 4 的字元
var myString = "Every good boy does fine.";
var section = myString.substr(6,4); //結果: "good"
4.轉換大小寫
var myString = "Hello";
var lcString = myString.toLowerCase(); //結果: "hello"
var ucString = myString.toUpperCase(); //結果: "HELLO"
5.字元串比較
var aString = "Hello!";
var bString = new String("Hello!");
if( aString == "Hello!" ){ } //結果: true
if( aString == bString ){ } //結果: true
if( aString === bString ){ } //結果: false (兩個對象不同,盡管它們的值相同)
6.檢索字元串
var myString = "hello everybody.";// 如果檢索不到會傳回-1,檢索到的話傳回在該串中的起始位置
if( myString.indexOf("every") > -1 ){ } //結果: true
7.查找替換字元串
var myString = "I is your father.";
var result = myString.replace("is","am"); //結果: "I am your father."
8.特殊字元:
"b : 後退符 "t : 水準制表符
"n : 換行符 "v : 垂直制表符
"f : 分頁符 "r : 回車符
"" : 雙引号 "' : 單引号
"" : 反斜杆
9.将字元轉換成Unicode編碼
var myString = "hello";
var code = myString.charCodeAt(3); //傳回"l"的Unicode編碼(整型)
var char = String.fromCharCode(66); //傳回Unicode為66的字元
10.将字元串轉換成URL編碼
var myString = "hello all";
var code = encodeURI(myString); //結果: "hello%20all"
var str = decodeURI(code); //結果: "hello all"
//相應的還有: encodeURIComponent() decodeURIComponent()
11.将字元串轉換成base64編碼
// base64Encode() base64Decode() 用法同上
//-----------------------------------------------------------------------
·數字型(Number)
1.聲明
var i = 1;
var i = new Number(1);
2.字元串與數字間的轉換
var i = 1;
var str = i.toString(); //結果: "1"
var str = new String(i); //結果: "1"
i = parseInt(str); //結果: 1
i = parseFloat(str); //結果: 1.0
//注意: parseInt,parseFloat會把一個類似于"32G"的字元串,強制轉換成32
3.判斷是否為有效的數字
var i = 123; var str = "string";
if( typeof i == "number" ){ } //true
//某些方法(如:parseInt,parseFloat)會傳回一個特殊的值NaN(Not a Number)
//請注意第2點中的[注意],此方法不完全适合判斷一個字元串是否是數字型!!
i = parseInt(str);
if( isNaN(i) ){ }
4.數字型比較
//此知識與[字元串比較]相同
5.小數轉整數
var f = 1.5;
var i = Math.round(f); //結果:2 (四舍五入)
var i = Math.ceil(f); //結果:2 (傳回大于f的最小整數)
var i = Math.floor(f); //結果:1 (傳回小于f的最大整數)
6.格式化顯示數字
var i = 3.14159;
//格式化為兩位小數的浮點數
var str = i.toFixed(2); //結果: "3.14"
//格式化為五位數字的浮點數(從左到右五位數字,不夠補零)
var str = i.toPrecision(5); //結果: "3.1415"
7.X進制數字的轉換
//不是很懂 -.-
var i = parseInt("0x1f",16);
var i = parseInt(i,10);
var i = parseInt("11010011",2);
8.随機數
//傳回0-1之間的任意小數
var rnd = Math.random();
//傳回0-n之間的任意整數(不包括n)
var rnd = Math.floor(Math.random() * n)
//-----------------------------------------------------------------------
·Math對象
1. Math.abs(num) : 傳回num的絕對值
2. Math.acos(num) : 傳回num的反餘弦值
3. Math.asin(num) : 傳回num的反正弦值
4. Math.atan(num) : 傳回num的反正切值
5. Math.atan2(y,x) : 傳回y除以x的商的反正切值
6. Math.ceil(num) : 傳回大于num的最小整數
7. Math.cos(num) : 傳回num的餘弦值
8. Math.exp(x) : 傳回以自然數為底,x次幂的數
9. Math.floor(num) : 傳回小于num的最大整數
10.Math.log(num) : 傳回num的自然對數
11.Math.max(num1,num2) : 傳回num1和num2中較大的一個
12.Math.min(num1,num2) : 傳回num1和num2中較小的一個
13.Math.pow(x,y) : 傳回x的y次方的值
14.Math.random() : 傳回0到1之間的一個随機數
15.Math.round(num) : 傳回num四舍五入後的值
16.Math.sin(num) : 傳回num的正弦值
17.Math.sqrt(num) : 傳回num的平方根
18.Math.tan(num) : 傳回num的正切值
19.Math.E : 自然數(2.718281828459045)
20.Math.LN2 : 2的自然對數(0.6931471805599453)
21.Math.LN10 : 10的自然對數(2.302585092994046)
22.Math.LOG2E : log 2 為底的自然數(1.4426950408889634)
23.Math.LOG10E : log 10 為底的自然數(0.4342944819032518)
24.Math.PI : π(3.141592653589793)
25.Math.SQRT1_2 : 1/2的平方根(0.7071067811865476)
26.Math.SQRT2 : 2的平方根(1.4142135623730951)
//-----------------------------------------------------------------------
·日期型(Date)
1.聲明
var myDate = new Date(); //系統目前時間
var myDate = new Date(yyyy, mm, dd, hh, mm, ss);
var myDate = new Date(yyyy, mm, dd);
var myDate = new Date("monthName dd, yyyy hh:mm:ss");
var myDate = new Date("monthName dd, yyyy");
var myDate = new Date(epochMilliseconds);
2.擷取時間的某部份
var myDate = new Date();
myDate.getYear(); //擷取目前年份(2位)
myDate.getFullYear(); //擷取完整的年份(4位,1970-????),一般都要用full,防止FF出錯
myDate.getMonth(); //擷取目前月份(0-11,0代表1月)
myDate.getDate(); //擷取目前日(1-31)
myDate.getDay(); //擷取目前星期X(0-6,0代表星期天)
myDate.getTime(); //擷取目前時間(從1970.1.1開始的毫秒數)
myDate.getHours(); //擷取目前小時數(0-23)
myDate.getMinutes(); //擷取目前分鐘數(0-59)
myDate.getSeconds(); //擷取目前秒數(0-59)
myDate.getMilliseconds(); //擷取目前毫秒數(0-999)
myDate.toLocaleDateString(); //擷取目前日期
myDate.toLocaleTimeString(); //擷取目前時間
myDate.toLocaleString( ); //擷取日期與時間
3.計算之前或未來的時間
var myDate = new Date();
myDate.setDate(myDate.getDate() + 10); //目前時間加10天
//類似的方法都基本相同,以set開頭,具體參考第2點
4.計算兩個日期的偏移量
var i = daysBetween(beginDate,endDate); //傳回天數
var i = beginDate.getTimezoneOffset(endDate); //傳回分鐘數
5.檢查有效日期
//checkDate() 隻允許"mm-dd-yyyy"或"mm/dd/yyyy"兩種格式的日期
if( checkDate("2006-01-01") ){ }
//正規表達式(自己寫的檢查 yyyy-mm-dd, yy-mm-dd, yyyy/mm/dd, yy/mm/dd 四種)
var r = /^("d{2}|"d{4})["/-]"d{1,2}["/-]"d{1,2}$/;
if( r.test( myString ) ){ }
//-----------------------------------------------------------------------
·數組(Array)
1.聲明
var arr = new Array(); //聲明一個空數組
var arr = new Array(10); //聲明一個10個長度的數組
var arr = new Array("Alice", "Fred", "Jean"); //用值初始化數組
var arr = ["Alice", "Fred", "Jean"]; //用值初始化數組
var arr = [["A","B","C"][1,2,3]]; //聲明一個二(多)維數組
2.數組的通路
arr[0] = "123"; //指派
var str = arr[0]; //擷取
arr[0][0] = "123"; //多元數組指派
3.數組與字元串間的轉換
var arr = ["A","B","C","D"]; //聲明
//數組按分隔符轉換成字元串
var str = arr.join("|"); //結果: "A|B|C|D"
//字元串切割成數組
arr = str.split("|");
4.周遊數組
for( var i=0; i<arr.length; i++ ){ alert(arr[i]); }
5.排序
var arr = [12,15,8,9];
arr.sort(); //結果: 8 9 12 15
6.組合與分解數組
var arr1 = ["A","B","C","D"];
var arr2 = ["1","2","3","4"];
//獎兩個數組組合成一個新的數組
var arr = arr1.concat(arr2); //結果: ["A","B","C","D","1","2","3","4"]
//将一個數組切成兩個數組(參數1:起始索引,參數2:切割長度)
var arr3 = arr.splice(1,3); //結果: arr3:["B","C","D"] arr["A","1","2","3","4"]
//将一個數組切成兩個數組,并在原數組補新值
var arr4 = arr.splice(1,3,"AA"); //結果: arr4:["B","C","D"] arr["A","AA","1","2","3","4"]
//-----------------------------------------------------------------------
·自定義對象
1.聲明:
function myUser(uid,pwd){
this.uid = uid;
this.pwd = pwd || "000000"; //預設值
this.show = showInfo; //方法
}
//下面的函數不是自定義對象,是自定義對象的方法.繼續看下去就明白了
function showInfo(){
alert("使用者名:" + this.uid + ",密碼:" + this.pwd)
}
2.執行個體化:
var user = new myUser("user","123456");
var user = {uid:"user",pwd:"123456"};
3.擷取與設定
alert("使用者名是:" + user.uid); //get
user.uid = "newuser"; //set
user.show(); //調用show()方法
//-----------------------------------------------------------------------
·變量 函數 流程控制
1.變量
var i = 1;
var i = 1, str = "hello";
2.函數
function funName(){
//do something.
}
function funName(param1[,paramX]){
//do something.
}
3.嵌套函數
//某種情況,你需要建立一個函數本身所獨有的函數.
function myFunction(){
//do something.
privateFunction();
function privateFunction(){
//do something.
}
}
4.匿名函數
var tmp = function(){ alert("only test."); }
tmp();
5.延遲函數調用
var tId = setTimeout("myFun()",1000); //延遲1000毫秒後再調用myFun()函數
fucntion myFun(){
//do something
clearTimeout(tId); //銷毀對象
}
6.流程控制
if( condition ){ }
if( condition ){ } else{ }
if( condition ){ } else if( condition ){ } else{ }
switch( expression ){
case valA : statement; break;
case valB : statement; break;
default : statement; break;
}
7.異常捕獲
try{ expression } catch(e){ } finally{ }
//不處理任何異常
window.onerror = doNothing;
function doNothing(){ return true; }
//異常類可用的屬性
Description : 異常描述(IE,NN)
fileName : 異常頁面URI(NN)
lineNumber : 異常行數(NN)
message : 異常描述(IE,NN)
name : 錯誤類型(IE,NN)
number : 錯誤代碼(IE)
//錯誤資訊(相容所有浏覽器)
try{ }
catch(e){
var msg = (e.message) ? e.message : e.description;
alert(msg);
}
8.加快腳本的執行速度需要注意的幾點
-避免使用 eval() 函數
-避免使用 with 關鍵字
-将重複的表達式指派精簡到最小
-在較大的對象中使用索引來查找數組
-減少 document.write() 的使用
//-----------------------------------------------------------------------
·浏覽器特征( navigator )
1.浏覽器名稱
//IE : "Microsoft Internet Explorer"
//NS : "Netscape"
var browserName = navigator.appName;
判斷IE浏覽器版本:if(navigator.userAgent.indexOf("MSIE6.0")>0){…} // "MSIE7.0" "MSIE"
2.浏覽器版本
var browserVersion = navigator.appVersion;
3.用戶端作業系統
var isWin = ( navigator.userAgent.indexOf("Win") != -1 );
var isMac = ( navigator.userAgent.indexOf("Mac") != -1 );
var isUnix = ( navigator.userAgent.indexOf("X11") != -1 );
4.判斷是否支援某對象,方法,屬性
//當一個對象,方法,屬性未定義時會傳回undefined或null等,這些特殊值都是false
if( document.images ){ }
if( document.getElementById ){ }
5.檢查浏覽器目前語言
if( navigator.userLanguage ){ var l = navigator.userLanguage.toUpperCase(); }
6.檢查浏覽器是否支援Cookies
if( navigator.cookieEnabled ){…}
//-----------------------------------------------------------------------
·控制浏覽器視窗( window )
1.設定浏覽器的大小
window.resizeTo(800, 600); //将浏覽器調整到800X600大小
window.resizeBy(50, -10); //在原有大小上改變增大或減小視窗大小
2.調整浏覽器的位置
window.moveTo(10, 20); //将浏覽器的位置定位到X:10 Y:20
window.moveBy(0, 10); //在原有位置上移動位置(偏移量)
3.建立一個新的視窗
var win = window.open("about.htm","winName","height=300,width=400");
//參數
alwaysLowered //始終在其它浏覽器視窗的後面(NN)
alwaysRaised //始終在其它浏覽器視窗的前面(NN)
channelMode //是否為導航模式(IE)
copyhistory //複制曆史記錄至新開的視窗(NN)
dependent //新視窗随打開它的主視窗關閉而關閉(NN)
fullscreen //全屏模式(所有相關的工具欄都沒有)(IE)
location //是否顯示位址欄(NN,IE)
menubar //是否顯示菜單欄(NN,IE)
scrollbars //是否顯示滾動條(NN,IE)
status //是否顯示狀态欄(NN,IE)
toolbar //是否顯示工具欄(NN,IE)
directories //是否顯示連結欄(NN,IE)
titlebar //是否顯示标題欄(NN)
hotkeys //顯示菜單快捷鍵(NN)
innerHeight //内容區域的高度(NN)
innerWidth //内容區域的寬度(NN)
resizable //是否可以調整大小(NN,IE)
top //視窗距離桌面上邊界的大小(NN,IE)
left //視窗距離桌面左邊界的大小(NN,IE)
height //視窗高度(NN,IE)
width //浏覽器的寬度
4.與新視窗通訊
win.focus(); //讓新視窗獲得焦點
win.document.write("abc"); //在新視窗上操作
win.document.close(); //結束流操作
opener.close();
5.模式視窗
window.showModalDialog("test.htm",dialogArgs,"param"); //傳遞對象
window.showModelessDialog("test.htm",myFunction,"param"); //傳遞函數
window.dialogArguments //對話框通路父視窗傳遞過來的對象
window.returnValue //父視窗擷取對話框傳回的值
//參數
center //視窗居中螢幕
dialogHeight //視窗高度
dialogWidth //視窗寬度
dialogTop //視窗距離螢幕的上邊距
dialogLeft //視窗距離螢幕的左邊距
edge //邊框風格(raised|sunken)
help //顯示幫助按鈕
resizable //是否可以改變視窗大小
status //是否顯示狀态欄
//例子
<script>
function openDialog(myForm) {
var result = window.showModalDialog("new.html",myForm,"center");
}
</script>
<form action="#" οnsubmit="return false">
<input type="text" id="txtId">
<input type="button" id="btnChk" value="驗證是否可用" οnclick="openDialog(this.form);">
</form>
//另一個頁面new.html
<script>
window.dialogArguments.btnChk.enabled = false; //将父視窗中的按鈕設定為不可用
//do something to check the Id.
window.write("使用者ID: " + window.dialogArguments.txtId.value + " 可使用!");
//擷取文本框的值
</script>
//-----------------------------------------------------------------------
·管理架構網頁( frames )
1.建立一個架構架構網頁
<html>
<frameset rows="50, *">
<frame name="header" src="header.html">
<frame name="main" src="main.html">
</frameset>
</html>
<iframe width="500px" height="20px" align="center" scrolling="no" frame src="a.html" allowtransparency="true"></iframe>
//a.html頁面background:url(a.gif) transparent no-repeate 2px 9px; //iframe頁面背景透明
2.通路架構網頁
window.frames[i]
window.frames["frameName"]
window.frameName
window.frames["frameName"].frames["frameName2"]
parent.frames["frameName"]
top.frames["frameName"]
3.将某一頁面定向到某架構
<frame name="main" src="main.html">//架構首頁index.html
//架構内容頁面
<a href="new.html" target="_blank" rel="external nofollow" target="main">
location = "new.html";
parent.frameName.location.href = "new.html";
top.frameName.location = "new.html";
4.強制不讓其它架構引用某頁面
if (top != self) {
top.location.href = location.href;
}
5.更改架構的大小
document.framesetName.rows = "50,*";
document.framesetName.cols = "50,*";
6.動态建立架構網頁
var frag = document.createDocumentFragment( );
var newFrame= document.createElement("frame");
newFrame.id = "header";
newFrame.name = "header";
newFrame.src="header.html"
frag.appendChild(newFrame);
newFrame = document.createElement("frame");
newFrame.id = "main";
newFrame.name = "main";
newFrame.src="main.html"
frag.appendChild(newFrame);
document.getElementById("masterFrameset").rows = "50,*";
//-----------------------------------------------------------------------
·表單( forms )
1.通路表單
document.forms[0]
document.forms["myForm"]
document.myForm
document.all.myForm
document.getElementById("myForm")
document.forms[0].elements[0]
document.forms["myForm"].elements["myElement"]
document.myForm.myElement
2.讓文本框自動獲得焦點
//讓名為myText的文本框在頁面加載時自動獲得焦點,并選中目前文本框的值
<body οnlοad="document.myForm.myText.focus(); document.myForm.myText.select();">
3.通用的文本框驗證函數
//驗證是否為空
<input type="text" οnchange="isEmpty(this)">
function isEmpty(obj){
if(obj.value == null || obj.value == "") alert("此字段不能為空");
}
//驗證是否為數字
<input type="text" οnchange="isNumber(this)">
function isNumber(obj){
var val = obj.value;
var r = /"w[0-9]{1,}/;
if( !r.test(val) ) alert("此字段必須為數字")
}
//驗證是否長度符合
<input type="text" οnchange="isLen7(this)">
function isLen7(obj){
if(obj.value.length != 7) alert("此字段長度必須為7位");
}
//驗證有效E-Mail位址
<input type="text" οnchange="isEmail(this)">
function isEmail(obj){
var val = obj.value;
var r = /^"w[0-9a-zA-Z."-]{3,}@"w[0-9a-zA-Z."-]{2,}."w[a-zA-Z.]{2,4}$/;
if( !r.test(val) ) alert("請輸入有效的E-Mail位址");
}
4.阻止表單送出
<form action="#" οnsubmit="return checkValue()"></form>
function checkValue(){
//do something to check the value.
return false;
}
5.改變表單送出的頁面
<form action="#" οnsubmit="chooseAction()"></form>
fucntion chooseAction(){
if(document.myForm.myCheckBox.checked) document.myForm.action ="a.asp";
else document.myForm.action = "b.asp";
}
6.阻止向文本框輸入某些字元
<input type="text" οnkeydοwn="checkKeyCode(event)">
fucntion checkKeyCode(evt){
evt = (evt) ? evt : event;
var c = (evt.charCode) ? evt.charCode : evt.keyCode;
if(c < 48 || c > 57){
alert("此字段隻允許輸入數字");
return false;
}
else return true;
}
7.回車後焦點跳到另一個輸入控件
<input id="txt1" type="text" οnkeypress="return focusNext(this,'txt2',event)">
<input id="txt2" type="text">
function focusNext(form,name,evt){
evt = (evt) ? evt : event;
var c = (evt.charCode) ? evt.charCode : evt.keyCode;
if(c == 13 || c == 3){
form.elements[name].focus();
return false;
}
else return true;
}
8.使某一控件不可用
document.myForm.myElement.disabled = true;
9.隐藏/顯示某一控件
document.myForm.myElement.style.display = "block"; //顯示
document.myForm.myElement.style.display = "none"; //隐藏
10.控制下拉框
//清空下拉框中的項
document.myForm.mySelect.options.length = 0;
//添加下拉框中的項
var item = new Option("myText","myValue");
document.myForm.mySelect.add(item);
//擷取下拉框目前選中的值
var val = document.myForm.mySelect.value;
//-----------------------------------------------------------------------
·事件( Event )
1.事件介紹:
onabort //當使用者阻止發送圖檔至用戶端時觸發
onblur //當控件失去焦點時觸發
onchange //當控件失去焦點并且内容發生了改變時觸發
onclick //當使用者點選某控件時觸發
ondblclick //當使用者輕按兩下某控件時觸發
onerror //當執行某腳本發生異常時觸發
onfocus //當某控件獲得焦點時觸發
onkeydown //當使用者按下鍵盤某個鍵時觸發
onkeypress //當使用者按下并松開鍵盤某個鍵時觸發
onkeyup //當使用者松開鍵盤某個鍵時觸發
onload //用頁面被加載完成後觸發
onmousedown //當使用者按下滑鼠時觸發
onmousemove //當使用者移動滑鼠時觸發
onmouseout //當使用者将滑鼠移出某控件時觸發
onmouseover //當使用者将滑鼠移入某控件時觸發
onmouseup //當使用者松開滑鼠時觸發
onmove //當使用者移動浏覽器視窗時觸發
onreset //當使用者點選表單"重置"按鈕時觸發
onresize //當使用者改變浏覽器視窗的大小時觸發
onselect //當使用者選中文本框内容時觸發
onsubmit //當使用者點選表單"送出"按鈕時觸發
onunload //當使用者關閉浏覽器時觸發
//以下為IE獨有的方法
onbeforecopy //當使用者使用"複制"功能前觸發
onbeforecut //當使用者使用"剪切"功能前觸發
onbeforepaste //當使用者使用"粘貼"功能前觸發
onbeforeprint //當使用者使用"列印"功能前觸發
oncontextmenu //當使用者調出上下文菜單時觸發
oncopy //當使用者使用"複制"功能時觸發(未複制)
oncut //當使用者使用"剪切"功能時觸發(未剪切)
ondrag //當使用者拖動某控件前觸發
ondragend //當使用者拖動某控件後觸發
ondragenter //當使用者拖動某控件到目前控件上面後觸發
ondragleave //當使用者将某控件拖出目前控件時觸發
ondragover //當使用者将某控件拖出目前控件上面時觸發
ondrop //當使用者将某控件拖到目前控件後觸發
2.浏覽器事件相容性
function funName(evt){
evt = (evt) ? evt : event;
if(evt){ //to do something }
}
3.動态為控件添加事件
document.getElementById("myControl").addEventListener("click",funName,false);
document.getElementById("myControl").onclick = funName;
4.頁面加載後調用某函數
<body οnlοad="funName(); funName2();">調用多個函數<body οnlοad="functionName(); a(); b(); c();">
window.onload = funName;
5.确定與點選事件相比對的事件
//9.3和9.4 比較複雜.且不清楚事件是JS API還是自定義的
6.防止重複執行兩次點選事件
//當第一次點選按鈕後,将表單送出回伺服器,然後submitForm()函數便指向blockIt()函數.
//除非頁面重新加載..否則點選無效(無作用)
<input type="button" value="送出" οnclick="submitForm()">
function submitForm(){
document.forms["myForm"].submit();
submitForm = blockIt;
reutrn false;
}
function blockIt(){
return false;
}
7.阻止使用者點選滑鼠右鍵或中鍵
function myFun(evt){
evt = (evt) ? evt : event;
if(evt.button || evt.button == 1 || evt.button == 2){ return false; }
else{ //do something }
}
8.阻止使用者鍵入某些字元
function myFun(evt){
evt = (evt) ? evt : event;
var c = (evt.charCode) ? evt.charCode : evt.keyCode;
if(c < 48 || c > 57){ return false; }
else reutrn true;
}
9.擷取目前滑鼠指向的對象
function myFun(evt){
evt = (evt) ? evt : event;
var elem = (evt.target) ? evt.target : evt.srcElement;
//do something
}
10.特殊功能鍵
evt.ctrlKey evt.altKey evt.shiftKey
11.播放媒體檔案
<object id="hiPing" width="1" height="1" classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" codebase="#Version=6,0,0,0">
<param name="FileName" value="hi.wav">
<param name="AutoStart" value="false">
</object>
function playSound(id){
if(document.all[id].FileName){ document.all[id].Play(); }
}
//-----------------------------------------------------------------------
·頁面導航
1.跳轉至另一個頁面
location = "newPage.html";
location.href = "newPage.html";
2.不記錄曆史記錄的頁面跳轉
location.replace("newPage.html");
3.利用下拉框跳轉頁面
<select name="chooser" id="chooser" οnchange="redirect()">
<option value="">Choose a Destination:</option>
<option value="index.html">Home</option>
<option value="products.html">Products</option>
<option value="support.html">Support</option>
<option value="contact.html">Contact Us</option>
</select>
function redirect(){
var t = document.all.chooser.value;
if(t){ location = t; }
}
4.利用Cookies儲存使用者資料
<body οnunlοad="saveData()"> //要儲存資料的頁面
<body οnlοad="readData()"> //新頁面
function saveData(){
var data = document.forms[0].userName.value;
var expDate = getExpDate(180, 0, 0);
setCookie("userName", data, expDate);
}
function readData( ) {
var data = getCookie("userName");
document.forms[0].userName.value = data;
}
5.利用URL來儲存使用者資料
function goNext(url){
var data = document.forms[0].userName.value;
location.href = url + "?" + escape(data);
}
function readData( ) {
var srchString = unescape(location.search.substring(1,location.search.length));
if (srchString.length > 0){ document.forms[0].userName.value = srchString; }
}
6.建立一個自定義右鍵菜單
//菜單就自己畫了,這裡隻說方法
function initContextMenus(){
if (document.body.addEventListener){
document.body.addEventListener("contextmenu", showContextMenu, true);
document.body.addEventListener("click", hideContextMenus, true);
}
else {
document.body.oncontextmenu = showContextMenu;
}
setContextTitles( );
}
//-----------------------------------------------------------------------
·管理樣式 ( CSS )
1.三種嵌入樣式表的方法:
//在頭部統一聲明樣式
<style type="text/css"> body{ font-size:9pt; } </style>
//從外部嵌入一樣式表檔案
<link rel="stylesheet" rev="stylesheet" type="text/css" href="myStyleSheet.css" target="_blank" rel="external nofollow" >
//直接在元素屬性裡定義
<p style="font-size:9pt">
2. 配置設定樣式規則給某一進制素
<style type="text/css">
<!-- tagName {styleProperty1:value1; styleProperty2:value2; ...} -->
</style>
3. 自定義一種樣式供一類元素使用
.myStyle { font-size:9pt; }
<p class="myStyle">
4. 自定義一種樣式供單一進制素使用
#myId { font-size:9pt; }
<p id="myId">
5. 頁面加載後動态修改頁面樣式表連結
<link id="basicStyle" rel="stylesheet" rev="stylesheet" type="text/css" href="style1.css" target="_blank" rel="external nofollow" >
document.getElementById("basicStyle").href = "newstyle.css";
6. 打開/關閉某個樣式表
document.styleSheets[1].disabled = false;
7. 動态設定/更改某一進制素的樣式
document.getElementById("myElement").className = "myStyle";
8. 元素樣式的優先級
Element << class << id << style
// 原則上來講,浏覽器會使用最後的一種樣式(就近原則)
// 當同時給一進制素設定id和class兩種樣式時,id的樣式優先于class
// 當同時給一進制素設定class和style兩種樣式時,style優先于class
// 當同時給一進制素設定style和id兩種樣式時,style優先于id
<style>
.myStyle { font-size:10pt; }
#myId { font-size:11pt; }
</style>
<p id="myId" class="myStyle" style="font-size:12pt">123
9.css 選擇符
子對象選擇符 > //版本ie7+,隻有直系兒子起作用
Eg :#test1 > p //對id是test1的div,它内部的屬性标簽是p的内容起作用。
相鄰選擇符 + //隻對鄰居有效果,對鄰居的鄰居無效果
Eg :#test5+p//對屬性标簽是p,對test的下一個如<p id="test6">的有效果
屬性選擇符 < a href="#" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" title="連結到其他頁面">
Eg :a[href="#" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" ]{……} a[title="連結到其他頁面"]{……}
外站連結target="_blank" <a href="xx.html" target="_blank" rel="external nofollow" title="outlink">outlink</a>
a[target="_blank"]{background:url() no-repeat center right}
[att^=val] 開頭包含 [att*=val]任何位置包含 [att$=val]結尾包含
a[href$=".zip"] a[href^="mailto"] a[href*="http://www.kx1d.com"]
僞類僞對象
Eg:a:link,a:visited,a:hover,a:active{………}
#text a:link, #text a:visited, #text a:hover, #text a:active{…}//text是大div
#childtext:link, #childtext:visited, #childtext:hover, #childtext:active{…}//小div
#style1:first-line{……}
#style1:first-letter{……}
10.hover對所有元素OK使用 // IE不要不支援,FF和Google浏覽器支援
Eg:.divtest{background:…}
.divtest:hover{background:…}
//-----------------------------------------------------------------------
·動态更改對象的視覺效果
1.更改對象的字型樣式
document.getElementById("myElement").style.color = "#EEEEEE";
document.getElementById("myElement").src = "**.html";
document.getElementById("myElement").className = "menu";
onmouseover="javascript:this.className=style2" οnmοuseοut="javascript:this.className=style1"
//相應的屬性
color : 字型的顔色
font : 字型的全局設定
fontfamily : 字型名稱
fontSize : 字型大小(pt, px)
fontStretch : 字元間隔(px)
fontStyle : 字型的樣式(normal, italic)
fontVariant : 字母大小常量(normal, small-caps)
fontWeight : 字型粗細(bold, bolder, lighter, normal)
textDecoration : 字型裝飾(blink, line-through, none, overline, underline)
textTransform : 字母大小寫(capitalize, lowercase, none, uppercase)
2.更改頁面背景樣式
document.body.background = "url(bg.gif) repeat fixed";
//相應的屬性
background : 背景的全局設定
backgroundAttachment : 背景是否随滾動條滾動而滾動(fixed, scroll)
backgroundColor : 背景顔色
backgroundImage : 背景圖檔
backgroundPosition : 背景圖檔的位置(bottom, center, left, right, top)
backgroundRepeat : 背景圖檔是否重複或拉伸(no-repeat, repeat, repeat-x, repeat-y)
3.顯示/隐藏某對象
document.getElementById("myElement").style.visibility = "hidden";//visible
document.getElementById("myElement").style.display = "none";
4.細調對象的透明度
document.getElementById("myElement").style.filter = "alpha(opacity=80)";
透明度寫法filter:alpha(opacity=50); //IE opacity:0.5;//FF Google
//-----------------------------------------------------------------------
·布置HTML對象的位置
1.動态更改對象的位置
<div id="myDiv" style="position:absolute; left:100px; top:100px">Content Here</div>
document.getElementById("myDiv").style.top = "200px";
2.設定對象在頁面上的層次關系
//值越大對象越前面
document.getElementById("myElement").style.zIndex = 123;
//-----------------------------------------------------------------------
·動态建立内容
1.頁面加載時動态建立内容
現在是:<script>var d = new Date(); document.write(d.toLocaleTimeString());</script>
2. 動态重畫頁面
<input type="text" id="txtName"><input type="button" value=" 确定" οnclick="rewritePage()">
<scritp>
function rewritePage(){
var user = document.getElementById("txtName").value;
var html = "<html><head><title> 歡迎</title></head>";
html += "<body> 歡迎您!" + user + "</body></html>";
document.write(html);
document.close();
}
</script>