




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、JavaScript 內置對象應用實驗 4 JavaScript 內置對象應用1 實驗目的1) 掌握JavaScript基本語法;2) 掌握JavaScript編程基礎;3) 掌握JavaScript對象編程技術;4) 了解JavaScript ActiveX 編程技術;2 實驗內容及要求JavaScript 語言的語法結構和流程控制,JavaScript 語言的事件和對象編程方法。3實驗原理JavaScript不同于服務器端腳本語言,JavaScript主要被作為客戶端腳本語言在用戶的瀏覽器上運行,不需要服務器的支持。4儀器與材料安裝有Windows7或以上操作系統的計算機,Dreamwea
2、ver5實驗內容5.1 JavaScript 編程基礎1、將JavaScript程序嵌入HTML文件的方法HTM戊件中使用腳本語言示例1。<html ><head><meta http-equiv ="Content-Type" content ="text/html; charset=gb2312"><title >HTM由如何使用script語言一設置收藏夾實例</ title ></head><script language ="javascript"
3、><!-alert( 'Hello' ); /顯示消息對話框 function Add_Favorite(url,title)window.external.AddFavorite(url,title);/ 放至U收藏夾 /-> </ script > <body><A HRE="javascript:Add_Favorite('http:','bbxy');”>收藏本站 </A></ body></ html >查看運行結果。HTML文件中使用腳
4、本語言示例2。<html ><head><meta http-equiv ="Content-Type" content ="text/html; charset=gb2312"><title >HTM由如何使用script語言一設置主頁實例</title ></head><script src ="sethomepage.js" language ="javascript"></ script ><body>
5、;< A id ="myAlink" HREI="#" onclick ="Set_HomePage();"> 設為主頁 </ A>< / body>< / html >sethomepage.js 文件內容:function Set_HomePage() myAlink.style.behavior='url(#default#homepage)'myAlink.setHomePage(' return false;直接在HTML標記內添加腳本。將上例改成:&l
6、t;html ><head><meta http-equiv ="Content-Type" content ="text/html; charset=gb2312">< title >HTM由如何使用script語言一設置主頁實例</title > </head><body>< A HRE="#" onclick ="javascript:this.style.behavior='url(#default#homepage)'
7、;this.setHomePage(' return false;">設為主頁 </A>< / body>< / html >查看運行結果。2函數一個使用內部函數eval()的示例。<script language ="javascript">var iNumber= "100"var anExpression ="(16 * 9 % 7)”;var total = eval(anExpression +"/" + iNumber);等同于求(16 *
8、9 % 7)/100 的值alert(total); / 將變量 total 賦值為 0.04。</ script >設計一個顯示指定數的階乘值的程序。<html ><head><title >函數示例/title ></ head><script language ="JavaScript”> function factor(num) var i,fact=1;for (i=1;i<num+1;i+) fact=i*fact; return fact;< / script ><bo
9、dy><script language ="JavaScript">調用factor函數alert("5的階乘="+ factop);顯示“的階乘=120”< / script >< / body>< / html >默認求1+2+ +1000 ,否則按指定開始值、結束值求和<html ><head><script language ="javascript">function sum(StartVal,EndVal)var ArgNum=sum
10、.arguments.length;var i,s=0;if (ArgNum=0) StartVal=1;EndVal=1000;else if (ArgNum=1) EndVal=1000;for (i=StartVal;i<=EndVal;i+) s+=i;return s;</ script ></head><body><script language ="javascript">/ document.write表示在瀏覽器中輸出文本document.write("不給出參數調用函數 sum:"
11、 ,sum(), "<br>");document.write("給出一個參數調用函數 sum:" ,sum(500), "<br>");document.write("給出兩個參數調用函數 sum:",sum(1,50), "<br>");</ script ></ body></ html >3事件驅動及事件處理鼠標單擊事件<html ><body><form ><Input t
12、ype ="button" Value ="鼠標響應"onclick ="alert( 這是一個例子)"></form >< / body></ html >鼠標單擊(函數名)。<html ><head><title>檢查輸入的字符串是否全由數字組成</title ></head><script language ="javascript">function checkNum(str) var Test
13、Result = !/D/.test(str);使用正則表達式測試字符串是否全由數字組成alert(TestResult);< / script ><body><input id ="mytext" type ="text" value ='12332'><input id ="mybut" type ="button" value ="檢查" onclick ="checkNum(mytext.value)">
14、< / body></ html >鼠標單擊(處理語句)。<html ><head><title >檢查輸入的字符串是否全由數字組成</title ></head><body><input id ="mytext" type ="text" value ='12332'><input id ="mybut" type ="button" value ="檢查"oncl
15、ick ="javascript:var TestResult=!/D/.test(mytext.value);/*使用正則表達式測試字符串*/ alert(TestResult);">< / body></ html >鼠標單擊(函數)。<html ><head><title >檢查輸入的字符串是否全由數字組成</title ></head><body><input id ="mytext" type ="text" valu
16、e ='12332'><input id ="mybut" type ="button" value ="檢查”><script language ="javascript">mybut.onmousedown=function () /* mybut 為按鈕的 ID */var TestResult = !/D/.test(mytext.value);/*使用正則表達式測試字符串是否全是數字*/alert(TestResult);</ script ></ b
17、ody></ html >Onchange、onselect、onfocus 事件例子。<html ><body><form ><inputid ="Test1"type ="text"value ="Test"onChange='alert("文本發生變化!")><inputid ="Test2"type ="text"value ="Test"onSelect ='
18、alert("我被選中!")'><inputid ="Test3"type ="text"value ="Test1"onFocus ='alert("Test3 得到焦點!")'><br ><inputid ="Test4"type ="text"value ="Test2"onFocus ='alert("Test4 得到焦點!")'&g
19、t;</form ></ body></ html >5.2 JavaScript對象編程技術1 JavaScript常用的內置對象使用JavaScript內建對象Array生成一個新的數組var theMonths =new Array(6);/創建數組對象theMonths ,具有6個數組元素theMonths0="Jan"theMonths1="Feb"theMonths2="Mar"theMonths3="Apr"theMonths4="May"the
20、Months5="Jun"卜面的示例與上一個示例是等價的var theMonths = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun");使用自定義對象的方式創建數組對象。<script language ="javascript">function arrayName(size) this .length=size;for (var i=0; i<=size;i+
21、) this i=0;return this ;var MyArray = newarrayName(10);MyArray0=1; MyArray1=2;MyArray2=3;MyArray3=4;MyArray4=5;MyArray5=6;MyArray6=7;MyArray7=8;MyArray8=9;MyArray9=10;alert(MyArray7); / 輸出 8</ script >string對象的建立和使用<script language ="javascript">/ 設置變量howLong為11。var howLong = &
22、quot;Hello World" .length;/錨點方法anchor()。使用anchor作用與Html中(A Name="") 一樣。/ 格式為:string.anchor(anchorName) 。/創建一個名為start的錨點,該處顯示文字"開始"。var astr="開始"var aname=astr.anchor( "start");document.write(aname);/超鏈接方法link()。用于創建一個超鏈接,與Html中(A href="") 作用相同。/
23、 格式為:string.link(URL) 。var hstr= "BBXY"var hname=hstr.link( "" );document.write(hname);/ substring。方法:substring(start,end) 。它返回字符串的一部分,該字符串包含從 start 直到/end (不包含end)的子字符串。/substring方法使用start 和end兩者中的較小值作為子字符串的起始點。例如,/strvar.substring(0, 3)和 strvar.substring(3, 0)將返回相同的子字符串。/如果star
24、t 或end為NaN或負數,那么它將被替換為 0。/子字符串的長度等于 start 和end之差的絕對值。例如,在 strvar.substring(0, 3) 和 /strvar.substring(3, 0)中,返回的子字符串的長度為3。/ 字符搜索:indexOfstr,fromIndex 。Str1= "0123456789" ;/ 創建一個 string 對象 Str1Str2= "2345" ;/ 創建一個 string對象 Str2var aChunk = Str1.substring(4, 7);/ 將 aChunk 設為"45
25、6"。document.write( "aChunk=" +aChunk);found= Str1.indexOf(Str2); / 返回 Str2 在 Str1 中的起始位置,found 值為。/創建字符串對象的另外一種方法是用newvar mystr= new String( "<br>BBXY<br>");document.write(mystr.link( "" );</ script >Math對象的使用<script language ="javascript&
26、quot;>var radius = 5;/聲明一個半徑變量并賦數值。var circleArea = Math.PI * radius * radius;/ 注意 Math和 PI 需大寫。/本公式計算給定半徑的球體的體積。volume = (4/3)*(Math.PI*Math.pow(radius,3);alert(volume); / 輸出.5987/也可用With保留字來簡化程序的寫法/注意Math和PI需大寫。with (Math)var circleArea = PI * radius * radius;/本公式計算給定半徑的球體的體積。volume = (4/3)*(PI
27、* pow(radius,3);alert(volume);</ script >/ 輸出.5987Date對象的使用<script language ="javascript">/*本示例使用前面定義的月份名稱數組。第一條語句以“ Day Month Date 00:00:00 Year”格式對Today變量賦值。*/var Today = new Date(); / 獲取今天的日期。/提取年,月,日。thisYear = Today.getFullYear(); thisMonth = Today.getMonth(); thisDay = To
28、day.getDate();/提取時,分,秒。thisHour=Today.getHours(); thisMinutes=Today.getMinutes();thisSeconds=Today.getSeconds();/提取星期幾一","二");thisWeek=Today.getDay();var x = new Array("日","x = x.concat( "三","四","五","六"); thisWeek=xthisWeek;nowDat
29、eTime="現在是"+thisYear+ "年"+thisMonth + "月"+thisDay+ "日" nowDateTime+=thisHour+ "時"+thisMinutes+ "分"+thisSeconds+ "秒"; nowDateTime+="星期"+thisWeek;document.write(nowDateTime+ "<br>" );/ 輸出:現在是年月日時分秒計算兩個日期相差的
30、天數var var var var vardatestring1 = "November 1, 1997 10:15 AM" datestring2 = "December 1,2019 10:15 AM"DayMilliseconds= 24*60*60*1000;t1 = Date.parse(datestring1);t2 = Date.parse(datestring2);/1天的毫秒數/換算成自年月日到年月日的毫秒數/換算成自年月日到年月日的毫秒數s = "There are "s += Math.round(Math.ab
31、s(t2-t1)/DayMilliseconds) +" days "s += "between " + datestring1 +" and " + datestring2 ;document.write(s); / 輸出:How many days between November 1, 1997 10:15 AM and December 1, 2019 10:15 AM </ script >2用戶自定義對象創建對象pasta<script language ="javascript"&g
32、t;/定義pasta對象function pasta(grain, width, shape, hasEgg) this .grain = grain;this .width = width;this .shape = shape;this .hasEgg = hasEgg; /使用對象的時候,用new進行實例化,下面建立了兩個對象實例。var spaghetti = new pasta( "wheat" , 0.2, "circle" , true );var linguine = newpasta( "wheat" , 0.3,
33、"oval" , true ); document.write(spaghetti.shape) / 輸出 circle document.write(linguine.shape) / 輸出 oval</ script >擴充上例中定義的pasta構造函數以包含toString 方法<script language ="javascript">/定義pasta對象function pasta(grain, width, shape, hasEgg) this .grain = grain;this .width = width;
34、this .shape = shape;this .hasEgg = hasEgg;this .toString = pastaToString;function pastaToString()return "Grain: "+ this .grain +"n" + "Width: "+ this .width +"n" +"Shape: " + this .shape + "n" + "Egg?: " + Boolean( this .hasEgg);/
35、用new建立pasta對象的實例spaghettivar spaghetti = new pasta( "wheat" , 0.2, "circle" , true );/可以給對象實例spaghetti添加屬性,以改變該實例spaghetti.color = "pale straw" ;spaghetti.drycook = 7;spaghetti.freshcook = 0.5;alert(spaghetti); / 輸出:Grain: wheat Width: 0.2 Shape: circle Egg?: truealert(
36、spaghetti.freshcook) / 輸出:.5/用new建立pasta對象的實例chowFunvar chowFun = new pasta( "rice" , 3, "flat" , false );/chowFun實例中并不包括實例spaghetti添加的color屬性。可以為pasta對象添加一個color屬性,以 后所有pasta的對象實例均可使用此屬性。totype.color = "yellow"alert(spaghetti.color); / 輸出:pale strawalert(chowF
37、un.color); / 輸出:yellow(chowFun已經具有 color 屬性了)</ script >5.3 JavaScript ActiveX 編程技術文件系統操作。<script type ="text/javascript" >var fso =new ActiveXObject("Scripting.FileSystemObject" )fso.CreateFolder ("C:Bonus" ); / 在 C1創建一個文件夾fso.DeleteFolder ("C:Bonus&qu
38、ot; ); / 刪除創建的文件夾fso.CopyFile( "c:temp11.bmp", "c:Bonus22.bmp"); 復制文件/創建新文件 var tf = fso.CreateTextFile( "c:testfile.txt" , true);tf.WriteLine( "Testing 1,2, 3.") ;/ 填寫數據,并增加換行符tf.WriteBlankLines(3) ;/ 增力口 3 個空行tf.Write ( "This is a test." ); / 填寫一行,
39、不帶換行符tf.Close(); / 關閉文件/打開文件var ForReading=1;var ts = fso.OpenTextFile( "c:testfile.txt" , ForReading);s = ts.ReadLine(); /讀取文件一行內容到字符串alert( "File contents = '"+ s + "",); / 顯示字符串信息ts.Close(); / 關閉文件</ script >調用Excel的程序1。<script language ="javascript
40、">var ExcelApp = newActiveXObject( "Excel.Application" );/ 啟動創建對象的應用程序 EXCELvar ExcelSheet =new ActiveXObject("Excel.Sheet" );/ 創建 EXCELS作表ExcelSheet.Application.Visible = true ;/ 使 Excel 窗口可見/將一些文本放置到表格的第一格中。ExcelSheet.ActiveSheet.Cells(1,1).Value ="This is column A
41、, row 1"/ 保存 EXCELS C:TEST.XLS。ExcelSheet.SaveAs( "C:TEST1.XLS");/用Quit方法關閉Excel。ExcelApp.Quit();/可以找到C:TEST1.XLS文件,檢查其正確性</ script >調用Excel的程序2<script language ="javascript">/ 啟動 EXCEL var ExcelApp = newActiveXObject( "Excel.Application" );ExcelApp.Vis
42、ible = true ;使 EXCE窗 口可見/指定當前工作區為Sheet2ExcelApp.WorkBooks.Open( "c:TEST.xls"); var objExcelBook=ExcelApp.ActiveWorkBook; var objExcelSheets=objExcelBook.Worksheets; var objExcelSheet=objExcelBook.Sheets(1);/此處為對excel單元格進行填寫數據的語句objExcelSheet.Range( ek7");"B2:k2" ).Value=Arra
43、y("Week1", "Week2", "Week3", "Week4", "Week5", "Week6", "WeobjExcelSheet.Range("B3:k3" ).Value=Array("67" , "87" , "5" , "9" , "7" , "45" , "45" , "54" , "54" , "10");objExcelSheet.Range("B4:k4" ).Value=Array(&quo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 暑假集訓活動方案
- 木子居家活動方案
- 本土文化之旅活動方案
- 春節營業游泳活動方案
- 晚宴聚餐活動方案
- 機關破冰活動方案
- 船舶搶修訓練方案(3篇)
- 月餅diy比賽活動方案
- 村子慶祝活動方案
- 書房柜子維修方案(3篇)
- 中小學辦學思想凝練的主要路徑
- 2025年法律職業資格考試民法專項練習卷:公司法真題匯編
- 2025-2030鋁材行業市場深度調研及發展策略研究報告
- 危險性較大的分部分項工程專項施工方案嚴重缺陷清單(試行)2025解讀
- 湖南長沙市青竹湖湘一外國語學校2025屆七下生物期末經典模擬試題含解析
- 浙江國企招聘2025紹興市鏡湖開發集團有限公司下屬國企招聘11人筆試參考題庫附帶答案詳解
- 廣東2025年中考模擬數學試卷試題及答案詳解
- 山東省濟南市歷城區圖片版2025年六年級下學期調研數學試卷含解析
- 4-11-01-01 國家職業標準供電服務員 (2025年版)
- 2025至2030中國正極補鋰劑市場供給格局狀與發展態勢報告
- 四川省宜賓市敘州區2025屆五下數學期末質量跟蹤監視試題含答案
評論
0/150
提交評論