760 likes | 939 Views
. JavaScript. 資策會教育訓練處 楊宏文 ( hubert Yang) hwyang@iii.org.tw. www.hubert.idv.tw. 練習 3-1. 建立一個具有框架的基本網站架構。 1. 當使用者進入你的網站時,利用 alert 表示歡迎訊息。 2.當使用者按下“與我聯絡”超鏈結點, 打開一個POP3軟體,以撰寫信件。. Navigator 物件. www.hubert.idv.tw. 領航員物件 (Navigator Object). 使用領航員物件的語法如下。. navigator. 特性
E N D
.......... .......... JavaScript 資策會教育訓練處 楊宏文 (hubert Yang) hwyang@iii.org.tw
.......... www.hubert.idv.tw .......... 練習 3-1 建立一個具有框架的基本網站架構。 1.當使用者進入你的網站時,利用alert 表示歡迎訊息。 2.當使用者按下“與我聯絡”超鏈結點, 打開一個POP3軟體,以撰寫信件。
.......... .......... Navigator 物件
.......... www.hubert.idv.tw .......... 領航員物件(Navigator Object) • 使用領航員物件的語法如下。 navigator.特性 navigator.方法
.......... www.hubert.idv.tw .......... 領航員物件特性 • 領航員物件可搭配的特性如下。 appCodeName ->瀏覽器代碼 appName ->瀏覽器名稱 appVersion ->瀏覽器版本 userAgent ->使用者代理器 (相當於結合 appName 與 appVersion )
.......... www.hubert.idv.tw .......... 領航員物件方法 • 領航員物件可使用的方法如下。 eval() ->將指定的引數(運算式)計值 javaEnabled() ->是否支援Java (True/False) toString() ->傳回字串表示值 valueOf() ->傳回數值表示值
.......... www.hubert.idv.tw .......... 領航員物件範例 <Script> with(document) { write("瀏覽器代碼=", navigator.appCodeName, "<br>"); write("瀏覽器名稱=", navigator.appName, "<br>"); write("瀏覽器版本=", navigator.appVersion, "<br>"); write("使用者表頭=", navigator.userAgent, "<br>"); } </script>
.......... www.hubert.idv.tw .......... 領航員物件範例 <script> var str1 = navigator.appVersion; var str2 = str1.split(";"); document.write("您的瀏覽器版本:", str2[1], "<br>"); document.write("作業系統版本是:", str2[2], "<br>"); </script>
.......... www.hubert.idv.tw .......... 判斷是否使用 IE <script> isIE = (navigator.userAgent.indexOf("MSIE") != -1); var yesorno = isIE? "是": "不是"; document.write("您" + yesorno + "使用 Microsoft Internet Explorer"); </script>
.......... .......... Screen 物件
.......... www.hubert.idv.tw .......... 螢幕物件(Screen Object) • 使用螢幕物件的語法如下。 screen.特性 screen.方法
.......... www.hubert.idv.tw .......... 螢幕物件特性 • 螢幕物件可搭配的特性如下。 colorDepth ->顯示器色彩數目 height ->顯示器桌面區域的高度 width ->顯示器桌面區域的寬度
.......... www.hubert.idv.tw .......... 螢幕物件範例 <script> var width = screen.width; var height = screen.height; var color = screen.colorDepth; if (color == 8) color="256色"; else if (color == 16) color="16位元高彩"; else if (color == 32) color="32位元全彩"; document.write("你正使用", width, " * ", height, ",", color); </script>
.......... www.hubert.idv.tw .......... 練習 3-2 將使用者端的瀏覽器及顯示器設定顯示出來:
.......... .......... Window物件
.......... www.hubert.idv.tw .......... 視窗物件(Window object) 1.代表瀏覽器所開啟的視窗。 2.通常代表目前正在使用(focus)的視窗。 3.如果開啟多個瀏覽視窗時,可以利用 別名(alias)來區別他們 ex. opener, parent, self, window, top
.......... www.hubert.idv.tw .......... 視窗物件的使用語法(1) • 使用視窗物件的語法如下。 window.特性 window.方法(參數群) self.特性 //self代表目前window或frame名稱 self.方法(參數群) top.特性 //top代表最頂層的視窗 top.方法(參數群)
.......... www.hubert.idv.tw .......... 視窗物件的使用語法(2) • 使用視窗物件的語法如下。 parent.特性 //parent代表目前框架的母框架 parent.方法(參數群) opener.特性 //opener代表開啟目前視窗的視窗 opener.方法(參數群) 視窗名稱.特性 視窗名稱.方法(參數群) 特性 方法(參數群)
.......... www.hubert.idv.tw .......... 視窗物件的特性(1) • 視窗物件可搭配的特性如下: closed ->說明視窗是否已關閉 defaultStatus ->瀏覽器底部預設的狀態列訊息 length ->視窗物件中的框架個數 Frame ->視窗物件中的frame frames ->視窗物件中的frame陣列 name ->視窗物件名稱 opener ->視窗物件的呼叫者視窗名稱 status ->瀏覽器底部自行設定的狀態列訊息
.......... www.hubert.idv.tw .......... 視窗物件的特性(2) • 視窗物件可搭配的特性如下: document ->視窗物件中的document物件 history ->視窗物件中的history物件 location ->視窗物件中的location物件
.......... www.hubert.idv.tw .......... 視窗物件範例 – 避免被 frame 破壞 <Script> // 將這一段程式碼放至首頁,可以避免因框架內連結 // 所造成的視窗限制 if ( top.frames.length > 1 ) top.location= "你的網址" </Script>
.......... www.hubert.idv.tw .......... 視窗物件的方法(1) • 視窗物件可使用的方法如下。 alert() ->顯示警告訊息 confirm() ->顯示確認訊息 prompt() ->顯示提示訊息 focus() ->成為焦點 blur() ->移開焦點(成為背景處理) open() ->開啟新瀏覽視窗 close() ->關閉已開啟的瀏覽視窗 eval() ->執行引數運算式計算
.......... www.hubert.idv.tw .......... 視窗物件的方法(2) • 視窗物件可使用的方法如下。 resizeBy(x, y) ->將視窗尺寸向X軸及Y軸調整 moveBy(x, y) ->將視窗向X軸及Y軸移動 scroll(x,y) ->捲動至指定的座標 print() ->列印指定之視窗內容 setTimeoout() ->設定一定時程序(計時器) clearTimeout() ->撤銷一定時程序(計時器) toString() ->傳回字串表示值 valueOf() -->傳回數值表示值
.......... www.hubert.idv.tw .......... prompt() 的語法 [window.]prompt("提示字元", "輸入欄預設值") prompt 係用來彈出一個提示訊息框,並且提供一個可供輸入的欄位。
.......... www.hubert.idv.tw .......... 視窗物件範例 - prompt <Script> var bg= prompt("您喜歡哪一種底色:\n淺藍 -> 1 ,淺紅 -> 2","1") if (bg == 1) document.bgColor='#CCFFFF' else if (bg == 2) document.bgColor='#FFCCFF' else document.bgColor='#FFFFFF' </Script>
.......... www.hubert.idv.tw .......... 視窗物件範例 - confirm & alert • <Script> • if (confirm("你滿十八歲了嗎?")) • location.href = "sex.htm" • else • alert("等你成年以後再來!") • </Script> • 注意: • 以下四種寫法均相同 – • Window.location.href = ……… • Window.location = ……… • location.href = ……… • location = ………
.......... www.hubert.idv.tw .......... 範例 – 自動放大視窗 <Script> function grow(){ resizeBy( 50, 50) } function shrink(){ resizeBy( -50, -50) } </script> <body onMouseOver=grow() onMouseOut=shrink()> <H1>將視窗放大與縮小</H1> </body>
.......... www.hubert.idv.tw .......... 範例 – 自動捲動視窗 <Script> function scrollIt() { for (y=1; y<=1000; y++){ scroll(1,y) } } </Script> <body onDblClick=scrollIt()> 按滑鼠左鍵兩下,畫面自動捲動.... <br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br> ... The End .... <body>
.......... www.hubert.idv.tw .......... 開啟新視窗物件的語法 [視窗物件名稱=] [Window.] open (‘[URL]‘ [, ‘新視窗名稱]‘ [, ‘視窗的規格‘] ) • 視窗物件名稱:用以使用視窗物件的特性與方法。 • ex.視窗物件名稱.close() • 視窗名稱:用以識別該視窗。 • ex.<a href=“http://www.seed.net.tw” target=“視窗名稱”>
.......... www.hubert.idv.tw .......... 視窗物件的規格參數 height=number of pixels ->設定視窗高度(點數) width= number of pixels ->設定視窗寬度(點數) left = number of pixels ->設定視窗左邊界(點數) top = number of pixels ->設定視窗上邊界(點數) fullscreen=yes or no ->使用全螢幕 resizable=yes or no ->允許改變視窗大小否 menubar=yes or no ->是否使用功能表 toolbar=yes or no ->是否使用工具列 location=yes or no ->是否使用位址列 directories=yes or no ->是否使用目錄鈕 status=yes or no ->是否使用狀態列 scrollbars=yes or no ->是否使用捲軸
.......... www.hubert.idv.tw .......... 建立新視窗注意事項 1.當設定某些規格選項時,其他未設定 者,系統將一律視為false(即no)。 2.如果未設定任何規格選項時,則所有 選項將一律被視為true(即yes)。
.......... www.hubert.idv.tw .......... 視窗物件範例二 - 開啟與關閉視窗 <form> <input type=button value="開啟視窗一(newWin)" onClick="newWin=window.open('http://tw.yahoo.com/')"><P> <input type=button value="height為150點" onClick="open('http://tw.yahoo.com/','','height=150')"><P> <input type=button value="只有工具列的視窗" onClick="open('http://tw.yahoo.com/','','toolbar=yes')"><P> <input type=button value="關閉視窗一(newWin)" onClick=newWin.close()><P> <input type=button value="關閉目前視窗" onClick=window.close()><P> </form>
.......... www.hubert.idv.tw .......... 視窗物件範例二 - 開啟與關閉視窗 <script> // 在右方搜尋視窗中顯示網頁; open("http://tw.yahoo.com","_search") </script>
.......... www.hubert.idv.tw .......... 練習 3-3 增修您的基本網站:。 當訪客光臨您的網站之時,開啟一個 高100像素,寬600像素的廣告頁。
.......... www.hubert.idv.tw .......... 視窗物件範例- 動態調整廣告頁大小 <Script> function grow(){ resizeBy( 0, 150) } function shrink(){ resizeBy( 0, -150) } </script> <body onMouseOver=grow() onMouseOut=shrink()> 廣告頁 here </body>
.......... www.hubert.idv.tw .......... 視窗物件範例- 永遠在最上層的視窗 <BODY onBlur="self.focus()"> <!-- 一當該視窗失去焦點,即觸發 onBlur --> <!-- 將該視窗 focus,即成為作用中視窗 --> 廣告頁 here </BODY>
.......... www.hubert.idv.tw .......... 使用 Timer 的語法 [window.]setTimeout(“欲執行的程式碼或函數”, 設定的時間) 1.Timer又稱為計時器或延遲器,常用來指定於 特定時間後執行某程式。 2.時間單位為毫秒(千分之一秒) ex. 3000 milliseconds = 3 seconds
.......... www.hubert.idv.tw .......... 使用 Timer 的語法(二) 計時器物件名稱= [window.]setTimeout(“欲執行的程式碼或函數”, 設定的時間) 如果利用迴圈將計時器設計成重複執行,欲終止計時器執行,請使用此一格式。 因為要終止計時器的執行,必須指定欲終止 的計時器名稱。
.......... www.hubert.idv.tw .......... 終止迴圈內 Timer 的語法 [window.]clearTimeout(計時器物件名稱) 終止計時器的執行,必須指定欲終止的計時器名稱。
.......... www.hubert.idv.tw .......... 視窗物件範例 - timer(1) <script> function timer() { setTimeout("alert('3秒到了!')",3000) } </script> <body> <form> <input type=button value="計時開始" onClick=timer()> </form> </body>
.......... www.hubert.idv.tw .......... 視窗物件範例 - timer(2) <script> var counter=0 upDate(); function upDate() { counter ++ status = counter + "秒鐘" timer1 = setTimeout("upDate()",1000) } </script> <body><form> <input type=button value="計時結束" onClick=clearTimeout(timer1)> </form></body>
.......... www.hubert.idv.tw .......... 視窗物件範例 – 炫麗的進場畫面 <script> n = -1 ; bgFade() ; function bgFade(){ n++ if (n <= 15){ var color = 0 if (n < 10) { color = 111111 * n } else if (n == 10) { color = "AAAAAA" } else if (n == 11) { color = "BBBBBB" } else if (n == 12) { color = "CCCCCC" } else if (n == 13) { color = "DDDDDD" } else if (n == 14) { color = "EEEEEE" } else if (n == 15) { color = "FFFFFF" } document.bgColor = "#" + color setTimeout("bgFade()",50) } } </script> 利用計時器定時更換背景色。讓訪客於進入時,有耳目一新的感覺。
.......... www.hubert.idv.tw .......... 視窗物件範例 – 文字顏色變化 <script> var rgb=255; function shine(){ rgb-=5; document.all["alltext"].style.color = "rgb(" + rgb + "," + rgb + "," + rgb +")"; if (rgb>0){ setTimeout("shine()", 100); } } </script> <body onload="shine()" id="alltext"> <font face="arial black" size="5">HUBERT</font> </body>
.......... www.hubert.idv.tw .......... 視窗物件範例 – 不甘寂寞的畫面變化 <script> mode1() function mode1() { document.bgColor='#CCFFFF' setTimeout("mode2()",10000) } function mode2() { document.bgColor='#FFCCFF' setTimeout("mode1()",10000) } </script>
.......... www.hubert.idv.tw .......... 視窗物件範例 – 模擬閃爍字 <li>填問卷,送大獎。 <font id="t1" style="display:none">new</font> <script> show() function show() { t1.style.display = "" setTimeout("hide()",500) } function hide() { t1.style.display = "none" setTimeout("show()",500) } </script>
.......... www.hubert.idv.tw .......... 視窗物件範例 – 模擬霓虹燈 <script> var count=0; function changecolor(){ if (count%2==0) neon.className = "greenglow"; else neon.className = "pinkglow"; count++; } setInterval("changecolor()", 500); </script> <style> .greenglow {filter:glow(color:green, strength:3); height:10pt} .pinkglow {filter:glow(color:pink, strength:3); height:10pt} </style> <font id="neon" color="white" size="5" class="redglow"> 文哥網路技術學習網</font>
.......... www.hubert.idv.tw .......... 視窗物件範例 – 飛入的文字 <script> var pos=-100; function flyin(){ pos+=5; id1.style.left = pos; if (pos<30) setTimeout("flyin()", 1); } </script> <body onload="flyin()" > <div id="id1" style="position:relative"> <a href="http://tw.yahoo.com/">YAHOO</a><br> </div> </body>
.......... www.hubert.idv.tw .......... 視窗物件範例 – 依序飛入的文字 <script> var pos=-100; var idx=0; var speed=1; function flyin(){ pos+=5; document.anchors[idx].style.left = pos; if (pos<30) setTimeout("flyin()", speed); else if(idx!=document.anchors.length-1) { idx+=1; pos=-100; setTimeout("flyin()", speed); } } </script> <!----- 接下頁 ----->
.......... www.hubert.idv.tw .......... 視窗物件範例 – 飛入的文字 <!----- 接前頁 -----> <style> a {position:relative; left=-100} </style> <body onload="flyin()" > <a href="http://tw.yahoo.com/" name="yahoo">YAHOO</a><br> <a href="http://www.google.com/" name="google">Google</a><br> </body>
.......... www.hubert.idv.tw .......... 視窗物件範例 – 狀態列跑馬燈 <script> var msg="這是用 JavaScript 所做出來的跑馬燈!......." var seq = 0 scroll() function scroll() { status = msg.substring(0, seq+1) seq++ if ( seq >= msg.length ) seq = 0 setTimeout("scroll()",100) } </script>