夢想飛翔

          自強不息
          posts - 111, comments - 30, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          JavaScript 之Window對象

          Posted on 2007-08-07 13:08 love1563 閱讀(1131) 評論(0)  編輯  收藏 所屬分類: JSP/Servlets/JSF

          window對象有以下方法:??

          open???
          close???
          alert???
          confirm???
          prompt???
          setTimeout???
          clearTimeout???
          setInterval???
          clearInterval???
          moveBy???
          moveTo???
          resizeBy???
          resizeTo???
          scrollBy???
          scrollTo???
          find???
          back???
          forward???
          home???
          stop???
          print???
          blur???
          focus???
          captureEvent???
          enableExternalCapture???
          disableExternalCapture???
          handleEvent???
          releaseEvent???
          routeEvent???
          scroll???

            1. open方法??
            語法格式:??

          window.open(URL,窗口名稱,窗口風格)??
            功能:打開一個新的窗口,并在窗口中裝載指定URL地址的網頁。??

            說明:??

          open方法用于打開一個新的瀏覽器窗口,并在新窗口中裝入一個指定的URL地址??

          ;???
          open方法在打開一個新的瀏覽器窗口時,還可以指定窗口的名稱(第二個參數);???
          open方法在打開一個新的瀏覽器窗口時,還可以指定窗口的風格(第三個參數),??

          窗口風格有以下選項,這些選項可以多選,如果多選,各選項之間用逗號分隔:???
          toolbar:指定窗口是否有標準工具欄。當該選項的值為1或yes時,表示有標準??

          工具欄,當該選項的值為0或no時,表示沒有標準工具欄;???
          location:指定窗口是否有地址工具欄,選項的值及含義與toolbar相同;???
          directories:指定窗口是否有鏈接工具欄,選項的值及含義與toolbar相同;???
          status:指定窗口是否有狀態欄,選項的值及含義與toolbar相同;???
          menubar:指定窗口是否有菜單,選項的值及含義與toolbar相同;???
          scrollbar:指定當前窗口文檔大于窗口時是否有滾動條,選項的值及含義與??

          toolbar相同;???
          resizable:指定窗口是否可改變大小,選項的值及含義與toolbar相同;???
          width:以像素為單位指定窗口的寬度,已被innerWidth取代;???
          height:以像素為單位指定窗口的高度,已被innerHeight取代;???
          outerWidth:以像素為單位指定窗口的外部寬度;???
          outerHeight:以像素為單位指定窗口的外部高度;???
          left:以像素為單位指定窗口距屏幕左邊的位置;???
          top:以像素為單位指定窗口距屏幕頂端的位置;???
          alwaysLowered:指定窗口隱藏在所有窗口之后,選項的值及含義與toolbar相同??

          ;???
          alwaysRaised:指定窗口浮在所有窗口之上,選項的值及含義與toolbar相同;???
          dependent:指定打開的窗口為當前窗口的一個子窗口,并隨著父窗口的關閉而??

          關閉,選項的值及含義與toolbar相同;???

          hotkeys:在沒有菜單欄的新窗口中設置安全退出的熱鍵,選項的值及含義與??

          toolbar相同;???

          innerHeight:設定窗口中文檔的像素高度;???

          innerWidth:設定窗口中文檔的像素寬度;???

          screenX:設定窗口距離屏幕左邊界的像素長度;???

          screenY:設定窗口距離屏幕上邊界的像素長度;???

          titleBar:指明標題欄是否在新窗口中可見,選項的值及含義與toolbar相同;???

          z-look:指明當窗口被激活時,不能浮在其它窗口之上,選項的值及含義與??

          toolbar相同。???

          open方法返回的是該窗口的引用。???

          小技巧:該方法經常用于在打開一個網頁時自動打開另一個窗口。??

          例6-2-1:編制一個小程序,它用于在打開當前窗口時自動打開另一個窗口,要??

          求該窗沒有標準工具欄、地址欄、鏈接工具欄、菜單欄,但有狀態欄,窗口中打??

          開的網頁地址為:http://www.dlrtvu.edu.cn。??

          2. close方法??
          語法格式:??

          window.close()??
          功能:close方法用于自動關閉瀏覽器窗口。??

          ?? 3. alert方法??
          語法格式:??

          window.alert(提示字符串)??
          功能:彈出一個警告框,在警告框內顯示提示字符串文本。??

          ?? 4. confirm方法??
          語法格式:??

          window.confirm(提示字符串)??
          功能:顯示一個確認框,在確認框內顯示提示字符串,當用戶單擊“確定”按鈕??

          時該方法返回true,單擊“取消”時返回false。??

          ?? 5. prompt方法??
          語法格式:??

          window.prompt(提示字符串,缺省文本)??
          功能:顯示一個輸入框,在輸入框內顯示提示字符串,在輸入文本框顯示缺省文??

          本,并等待用戶輸入,當用戶單擊“確定”按鈕時,返回用戶輸入的字符串,當??

          單擊“取消”按鈕時,返回null值。??

          ?? 6. setTimeout方法??
          語法格式:??

          window.setTimeout(代碼字符表達式,毫秒數)??
          功能:定時設置,當到了指定的毫秒數后,自動執行代碼字符表達式。??

          7. clearTimeout方法??
          語法格式:??

          window.clearTimeout(定時器)??
          功能:取消以前的定時設置,其中的參數是用setTimeout設置時的返回值。??

          ?? 8. setInterval方法??
          語法格式:??

          window.setInterval(代碼字符表達式,毫秒數)??
          功能:設定一個時間間隔后(第二個參數),反復執行“代碼字符表達式”的內容??

          9. clearInterval方法??
          語法格式:??

          window.clearInterval(時間間隔器)??
          功能:取消setInterval設置的定時。其中的參數是setInterval方法的返回值。??

          10. moveBy方法??
          語法格式:??

          window.moveBy(水平位移量,垂直位移量)??
          功能:按照給定像素參數移動指定窗口。第一個參數是窗口水平移動的像素,第??

          二個參數是窗口垂直移動的像素。??

          ?? 11.moveTo方法??
          語法格式:??

          window.moveTo(x,y)??
          功能:將窗口移動到指定的指定坐標(x,y)處。??

          12. resizeBy方法??
          語法格式:??

          window.resizeBy(水平,垂直)??
          功能:將當前窗口改變指定的大小(x,y),當x、y的值大于0時為擴大,小于0時??

          為縮小。??

          13. resizeTo方法??
          語法格式:??

          window.resizeTo(水平寬度,垂直寬度)??
          功能:將當前窗口改變成(x,y)大小,x、y分別為寬度和高度。??

          14. scrollBy方法??
          語法格式:??

          window.scrollBy(水平位移量,垂直位移量)??
          功能:將窗口中的內容按給定的位移量滾動。參數為正數時,正向滾動,否則反??

          向滾動。??

          15. scrollTo方法??
          語法格式:??

          window.scrollTo(x,y)??
          功能:將窗口中的內容滾動到指定位置。??

          16.find方法??
          語法格式:??

          window.find()??
          功能:當觸發該方法時,將彈出一個“find”(查找)對話窗口,并允許用戶在觸??

          發find方法的頁面中查找一個字符串。??

          注:該屬性在IE5.5及Netscape6.0中都不支持。??

          17. back方法??
          語法格式:??

          window.back()??
          功能:模擬用戶點擊瀏覽器上的“后退”按鈕,將頁面轉到瀏覽器的上一頁。??

          說明:僅當當前頁面存在上一頁時才能進行該操作。??

          注:IE5.5不支持該方法,Netscape6.0支持。??

          18. forward方法??
          語法格式:??

          window.forward()??
          功能:模擬用戶點擊瀏覽器上的“前進”按鈕,將頁面轉到瀏覽器的下一頁。??

          說明:僅當當前頁面存在下一頁時才能進行該操作。??

          注:IE5.5不支持該方法,Netscape6.0支持。??

          19. home方法??
          語法格式:??

          window.home()??
          功能:模擬用戶點擊瀏覽器上的“主頁”按鈕,將頁面轉到指定的頁面上。??

          注:IE5.5不支持該方法,Netscape6.0支持。??

          20. stop方法??
          語法格式:??

          window.stop()??
          功能:模擬用戶點擊瀏覽器上的“停止”按鈕,終止瀏覽器的下載操作。??

          注:IE5.5不支持該方法,Netscape6.0支持。??

          21. print方法??
          語法格式:??

          window.print()??
          功能:模擬用戶點擊瀏覽器上的“打印”按鈕,通知瀏覽器打開打印對話框打印??

          當前頁。??
          ????????
          22. blur方法??
          語法格式:??

          window.blur()??
          功能:從窗口中移出焦點。當與focus方法合用時必須小心,因為可能導致焦點??

          不斷移進移出。??

          23. focus方法??
          語法格式:??

          window.focus()??
          功能:使窗口中得到焦點。當與blur方法合用時必須小心,因為可能導致焦點不??

          斷移進移出。
          24. captureEvent方法??
          語法格式:??

          window.captureEvent(Event)?????????
          window.captureEvent(事件1|事件2|...|事件n)??
          功能:捕捉指定參數的所有事件。由于能夠捕獲哪些由本地程序自己處理的事件??

          ,所以程序員可以隨意定義函數來處理事件。如果有多個事件需要捕捉,各事件??

          之間用管道符“|”隔開。可捕捉的事件類型如下:??

          Event.ABORT???

          Event.BLUR???

          Event.CHANGE???

          Event.CLICK???

          Event.DBLCLICK???

          Event.DRAGDROP???

          Event.ERROR???

          Event.FOCUS???

          Event.KEYDOWN???

          Event.KEYPRESS???

          Event.KEYUP???

          Event.LOAD???

          Event.MOUSEDOWN???

          Event.MOUSUEMOVE???

          Event.MOUSEOUT???

          Event.MOUSEOVER???

          Event.MOUSEUP???

          Event.MOVE???

          Event.RESET???

          Event.RESIZE???

          Event.SELECT???

          Event.SUBMIT???

          Event.UNLOAD???

          25. enableExternalCapture事件??
          語法格式:??

          window.enableExternalCapture(event)??
          功能:enableExternalCapture方法用于捕捉通過參數傳入的外部事件。??

          26. disableExternalCapture事件??
          語法格式:??

          window.disableExternalCapture()??
          功能:取消enableExternalCapture方法的設置,終止對外部事件的捕捉。??

          27. handleEvent事件??
          語法格式:??

          window.handleEvent(event)??
          功能:觸發指定事件的事件處理器。??

          28. releaseEvent事件??
          語法格式:??

          window.releaseEvent(event)??
          window.releaseEvent(事件1|事件2|...|事件n)??
          功能:釋放通過參數傳入的已被捕捉的事件,這些事件是由??

          window.captureEvent方法設置的,可釋放的事件與captureEvent相同。??

          29. routeEvent事件??
          語法格式:??

          window.releaseEvent(event)??
          功能:把被捕捉類型的所有事件轉交給標準事件處理方法進行處理,可轉交的事??

          件與captureEvent相同。??

          30 scroll事件??
          語法格式:??

          window.scroll(X坐標,Y坐標)??
          功能:將窗口移動到指定的坐標位置。??

          6-2-2 window對象的屬性??
          window對象具有如下屬性:??

          status???

          statusbar???

          statusbar.visible???

          defaultstatus???

          location???

          locationbar???

          locationbar.visible???

          self???

          name???

          closed???

          frames???

          frames.length???

          length???

          document???

          history???

          innerHeight???

          innerWidth???

          menubar???

          menubar.visible???

          opener???

          outerHeight???

          outerWidth???

          pageXOffset???

          pageYOffset???

          parent???

          personalbar???

          personalbar.visible???

          scrollbar???

          scrollbar.visible???

          toolbar???

          toolbar.visible???

          top???

          1. status屬性??
          語法格式:??

          window.status=字符串??
          功能:設置或給出瀏覽器窗口中狀態欄的當前顯示信息。??

          小技巧:可以使用該屬性設置瀏覽器窗口狀態欄信息。??

          ?? 2. statusbar屬性??
          語法格式:??

          window.statusbar.屬性??
          功能:statusbar屬性本身也是一個對象,用于訪問它自已的visible屬性從而確??

          定狀態欄是否可見。??

          注:IE5.5瀏覽器不支持該屬性。??

          3. statusbar.visible屬性??
          語法格式:??

          window.statusbar.visible??
          功能:檢查狀態欄是否可見,如果可見則返回true,反之返回false。??

          注:IE5.5瀏覽器不支持該屬性。??

          ?? 4. defaultstatus屬性??
          語法格式:??

          window.defaultstatus[=字符串]??
          功能:defaultstatus屬性值是瀏覽器窗中狀態欄的默認顯示信息。??

          ?? 5.location屬性??
          語法格式:??

          window.location=URL??
          功能:給出當前窗口的URL信息或指定打開窗口的URL。??

          ?? 6. locationbar屬性??
          語法格式:??

          window.locationbar.屬性??
          功能:locationbar屬性也可以看成是一個子對象,這個屬性用來獲取它自已的??

          visible屬性來確定位置欄是否可見。??

          到目前為止,該屬性只有一個子屬性:visible。??

          注:IE5.5不支持該屬性。??

          7. locationbar.visible屬性??
          語法格式:??

          window.locationbar.visible??
          功能:返回位置欄是否可見,如果可見返回true,反之返回false。??

          注:IE5.5不支持該屬性。??

          8. self屬性??
          語法格式:??

          window.self.方法??
          window.self.屬性??
          功能:該屬性包含當前窗口的標志,利用這個屬性,可以保證在多個窗口被打開??

          的情況下,正確調用當前窗口內的函數或屬性而不會發生混亂。??

          ?? 9. name屬性??
          語法格式:??

          window.name=名稱??
          功能:返回窗口名稱,這個名稱是由window.open()方法創建新窗口時給定的。??

          在javascript1.0版本中,這個屬性只能用于讀取窗口名稱,而到了??

          javascript1.1版本時,可以用這個屬性給一個不是用window.open()方法創建的??

          窗口指定一個名稱。??

          ?? 10. closed屬性??
          語法格式:??

          window.closed??
          功能:closed屬性用于返回指定窗口的實例是否已經關閉,如果關閉,返回true??

          ,反之返回flase。??

          11. frames屬性??
          語法格式:??

          window.frames["框架名稱"]??
          window.frames[數值]??
          功能:frames屬性是一個數組,用來存儲文檔中每一個由元素創建的子窗口(框??

          架)實例,其中的下標即可以是次序號也可以是用FRAME元素的NAME屬性指定的名??

          稱來得到并使用。??

          12. frames.length屬性??
          語法格式:??

          window.frames.length??
          功能:frames.length屬性用于給出文檔中子窗口(框架)實例的個數。??

          13. length屬性??
          語法格式:??

          window.length??
          功能:length屬性返回一個窗口內的子窗口數目,該屬性與??

          window.frame.length屬性的值相同。??

          14. document屬性??
          語法格式:??

          window.document.事件??
          window.document.方法??
          window.document.屬性??
          功能:window對象的子對象document是javascript的核心對象,在腳本中遇到??

          BODY元素時創建一個實例。??

          15. history屬性??
          語法格式:??

          window.history[數值]??
          window.history.方法()??
          window.history.屬性??
          window對象的子對象history是javascript的核心對象之一,該屬性包含了一個??

          已訪問過頁面的名稱和URL的數組。??

          16. innerHeight屬性??
          語法格式:??

          window.innerHeight=數值??
          功能:返回或指定瀏覽器窗口中文檔的像素高度,這個高度不包括任何工具欄和??

          組成窗口的頁面修飾高度。??

          注:IE5.5不支持該屬性。??

          17. innerWidth屬性??
          語法格式:??

          window.innerHeight=數值??
          功能:返回或指定瀏覽器窗口中文檔的像素寬度,這個寬度不包括任何工具欄和??

          組成窗口的頁面修飾寬度。??

          注:IE5.5不支持該屬性。??

          18. menubar屬性??
          語法格式:??

          window.menubar.屬性??
          功能:menubar屬性也可以看成是一個子對象,這個屬性用來獲取它自已的??

          visible屬性來確定菜單欄是否可見。??

          到目前為止,該屬性只有一個子屬性:visible。??

          注:IE5.5不支持該屬性。??

          19. menubar.visible屬性??
          語法格式:??

          window.menubar.visible??
          功能:menubar.visible屬性用于返回菜單欄是否可見,如果可見返回true,反??

          之返回false。??

          注:IE5.5不支持該屬性。??
          20. opener屬性??
          語法格式:??

          window.opener??
          window.opener.方法??
          window.opener.屬性??
          功能:opener屬性與打開該窗口的父窗口相聯系,當訪問子窗口中operer屬性時??

          ,返回的是父窗口。通過該屬性,可以使用父窗口對象中的方法和屬性。??

          21. outerHeight屬性??
          語法格式:??

          window.outerHeight??
          功能:outerHeight屬性用于訪問瀏覽器窗口的像素高度,該高度包括工具欄和??

          裝飾邊的高度。??

          注:IE5.5不支持該屬性。??

          22. outerWidth屬性??
          語法格式:??

          window.outerWidth??
          功能:outerWidth屬性用于訪問瀏覽器窗口的像素寬度,該寬度包括工具欄和裝??

          飾邊的寬度。??

          注:IE5.5不支持該屬性。??

          23. pageXOffset屬性??
          語法格式:??

          window.pageXOffset=數值??
          功能:指定瀏覽器窗口中文檔左上角在窗口中的當前水平像素位置。在利用??

          moveTo移動之前,可以通過該屬性來決定是否需要移動窗口。因為該屬性返回了??

          可見文檔相對整個頁面的當前位置。??

          注:IE5.5不支持該屬性。??

          24. pageYOffset屬性??
          語法格式:??

          window.pageYOffset=數值??
          功能:指定瀏覽器窗口中文檔左上角在窗口中的當前垂直像素位置。在利用??

          moveTo移動之前,可以通過該屬性來決定是否需要移動窗口。因為該屬性返回了??

          可見文檔相對整個頁面的當前位置。??

          注:IE5.5不支持該屬性。??

          25. parent屬性??
          語法格式:??

          window.parent.frames[數值]??
          window.parent.framesName??
          功能:訪問各個子窗口(多框架)所在的父窗口。??

          26. personalbar屬性??
          語法格式:??

          window.personalbar.屬性??
          功能:personalbar屬性本身也是一個對象,用于訪問其自身的visible屬性來確??

          定個人欄是否可見。??

          注:IE5.5不支持該屬性。??

          27. personalbar.visible屬性??
          語法格式:??

          window.personalbar.visible??
          功能:確定個人欄是否可見,如果可見則返回true,反之返回false。??

          注:IE5.5不支持該屬性。??

          28. scrollbars屬性??
          語法格式:??

          window.scrollbars.屬性??
          功能:scrollbars屬性本身也是一個對象,用于訪問其自身的visible屬性來確??

          定滾動欄是否可見。??

          注:IE5.5不支持該屬性。??

          29. scrollbars.visible屬性??
          語法格式:??

          window.scrollbars.visible??
          功能:scrollbars.visible用于確定滾動欄是否可見,如果可見則返回true,反??

          之返回false。??

          注:IE5.5不支持該屬性。??

          30. toolbar屬性??
          語法格式:??

          window.toolbar.屬性??
          功能:toolbar屬性本身也是一個對象,用于訪問它自已的visible屬性從而確定??

          工具欄是否可見。??

          注:IE5.5不支持該屬性。??

          31. toolbar.visible屬性??
          語法格式:??

          window.toolbar.visible??
          功能:toolbar.visible屬性用于檢查工具欄是否可見,如果可見則返回true,??

          反之返回false。??

          注:IE5.5不支持該屬性。??

          32. top屬性??
          語法格式:??

          window.top.frames[數值]??
          window.top.frameName??
          window.top.方法()??
          window.top.屬性??
          功能:window對象的top屬性用于包含所有裝入瀏覽器的子窗口(多框架)的最頂

          使用Window.open方法新建窗口
          Window對象表示的是瀏覽器窗口,它有多種操作,其中一個重要的方法是open,表示新建一個窗口來打開指定頁面。例如在a.html中執行以下語句:
          window.open("b.html");
          則新建一個窗口打開了b.html頁面,這和在a.html頁面中用一條鏈接打開頁面的效果是一樣的:
          <a href="b.html" target="_blank">b</html>
          但window.open對新建窗口的樣式可以有更多的控制,例如:窗口大小、是否顯示菜單欄、是否顯示滾動條、是否顯示地址欄等等。其完整的調用語法如下:
          window.open(url,windowName,"name1=value1[,name2=value2,[…]]");
          其中:url是要打開的頁面地址;windowName表示新建窗口的名字,從而可以對其進行控制;最后是一個用字符串表示的參數列表。每一個參數都是名稱和值對應的形式,用逗號隔開,其中可以使用的參數如下。
          ??height:表示新建窗口的高度;
          ??width:表示新建窗口的寬度;
          ??left:表示新建窗口到屏幕左邊緣的距離;
          ??top:表示新建窗口到屏幕頂端的距離。
          以上屬性的單位均為象素,例如對于800×600的分辨率,left=400則表示新窗口的左邊緣處于屏幕的正中間。其余的屬性主要是布爾型的,用yes或者1表示開啟,用no或者0表示關閉。如果是開啟,則yes或者1可省略,例如:toolbar=1等價于toolbar=yes等價于toolbar,下面分別介紹這些屬性:
          ??directories:是否顯示鏈接工具欄;
          ??location:是否顯示地址欄;
          ??menubar:是否顯示菜單欄;
          ??resizable:是否允許調整窗口大小;
          ??scrollbars:是否顯示滾動條;
          ??status:是否顯示狀態欄;
          ??toolbar:是否顯示工具欄。
          例如,下面的代碼將顯示一個無菜單、無工具條、無滾動條的窗口:
          window.open("test3.html","","height=200,width=300, toolbar=0,menubar=0,scrollbars=0");

          使用定時器實現JavaScript的延期執行或重復執行
          window對象提供了兩個方法來實現定時器的效果,分別是window.setTimeout()和window.setInterval。其中前者可以使一段代碼在指定時間后運行;而后者則可以使一段代碼每過指定時間就運行一次。它們的原型如下:
          window.setTimeout(expression,milliseconds);
          window.setInterval(expression,milliseconds);
          其中,expression可以是用引號括起來的一段代碼,也可以是一個函數名,到了指定的時間,系統便會自動調用該函數,當使用函數名作為調用句柄時,不能帶有任何參數;而使用字符串時,則可以在其中寫入要傳遞的參數。兩個方法的第二個參數是milliseconds,表示延時或者重復執行的毫秒數。下面分別介紹兩種方法。

          1.window.setTimeout方法
          該方法可以延時執行一個函數,例如:
          <script language="JavaScript" type="text/javascript">
          <!--
          function hello(){
          ?alert("hello");
          }
          window.setTimeout(hello,5000);
          //-->
          </script>
          這段代碼將使得頁面打開5秒鐘后顯示對話框“hello”。其中最后一句也可以寫為:
          window.setTimeout("hello()",5000);
          讀者可以體會它們的差別,在window.setInterval方法中也有這樣的性質。
          如果在延時期限到達之前取消延執行,可以使用window.clearTimeout(timeoutId)方法,該方法接收一個id,表示一個定時器。這個id是由setTimeout方法返回的,例如:
          <script language="JavaScript" type="text/javascript">
          <!--
          function hello(){
          ????? alert("hello");
          }
          var window.clearTimeout(id);
          }
          //-->
          </script>
          這樣,如果要取消顯示,只需單擊頁面任何一部分,就執行了window.clearTimeout方法,使得超時操作被取消。

          2.window.setInterval方法
          該方法使得一個函數每隔固定時間被調用一次,是一個很常用的方法。如果想要取消定時執行,和clearTimeout方法類似,可以調用window.clearInterval方法。clearInterval方法同樣接收一個setInterval方法返回的值作為參數。例如:
          //定義一個反復執行的調用
          var somefunction",10000);
          //取消定時執行
          window.clearInterval(id);
          上面的代碼僅用于說明怎樣取消一個定時執行。實際上在很多場合都需要用到setInterval方法,下面將設計一個秒表,來介紹setInterval函數的用途:該秒表將包括兩個按鈕和一個用于顯示時間的文本框。當單擊開始按鈕時開始計時,最小單位為0.01秒,此時再次單擊按鈕則停止計時,文本框顯示經過的時間。另外一個按鈕用于將當前時間清零。其實現代碼如下:
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <html>
          <head>
          <title> New Document </title>
          </head>
          <body>
          <form action="somepage.asp">
          <input type="text" value="0" />
          <input type="button" value="開始" />
          <input type="button" value="重置" />
          </form>
          </body>
          </html>
          <script language="JavaScript" type="text/javascript">
          <!--
          //獲取表單中的表單域
          var txt=document.forms[0].elements["txt1"];
          var btnStart=document.forms[0].elements["btnStart"];
          var btnReset=document.forms[0].elements["btnReset"]
          //定義定時器的id
          var id;
          //每10毫秒該值增加1
          var seed=0;

          btnStart.onclick=function(){
          ????? //根據按鈕文本來判斷當前操作
          ????? if(this.value=="開始"){
          ????????????? //使按鈕文本變為停止
          ????????????? this.value="停止";
          ????????????? //使重置按鈕不可用
          ????????????? btnReset.disabled=true;
          ????????????? //設置定時器,每0.01s跳一次
          ????????????? }else{
          ????????????? //使按鈕文本變為開始
          ????????????? this.value="開始";
          ????????????? //使重置按鈕可用
          ????????????? btnReset.disabled=false;
          ????????????? //取消定時
          ????????????? window.clearInterval(id);
          ????? }
          }

          //重置按鈕
          btnReset.onclick=function(){
          ???? seed=0;
          }
          //讓秒表跳一格
          function tip(){
          ????? seed++;
          ????? txt.value=seed/100;
          }
          //-->
          </script>
          給定時器調用傳遞參數
          無論是window.setTimeout還是window.setInterval,在使用函數名作為調用句柄時都不能帶參數,而在許多場合必須要帶參數,這就需要想方法解決。例如對于函數hello(_name),它用于針對用戶名顯示歡迎信息:
          var userName="jack";
          //根據用戶名顯示歡迎信息
          function hello(_name){
          ????? alert("hello,"+_name);
          }
          這時,如果企圖使用以下語句來使hello函數延遲3秒執行是不可行的:
          window.setTimeout(hello(userName),3000);
          這將使hello函數立即執行,并將返回值作為調用句柄傳遞給setTimeout函數,其結果并不是程序需要的。而使用字符串形式可以達到想要的結果:
          window.setTimeout("hello(userName)",3000);
          這里的字符串是一段JavaScript代碼,其中的userName表示的是變量。但這種寫法不夠直觀,而且有些場合必須使用函數名,下面用一個小技巧來實現帶參數函數的調用:
          <script language="JavaScript" type="text/javascript">
          <!--
          var userName="jack";
          //根據用戶名顯示歡迎信息
          function hello(_name){
          ?????? alert("hello,"+_name);
          }
          //創建一個函數,用于返回一個無參數函數
          function _hello(_name){
          ?????? return function(){
          ???????????? hello(_name);
          ?????? }
          }
          window.setTimeout(_hello(userName),3000);
          //-->
          </script>
          這里定義了一個函數_hello,用于接收一個參數,并返回一個不帶參數的函數,在這個函數內部使用了外部函數的參數,從而對其調用,不需要使用參數。在window.setTimeout函數中,使用_hello(userName)來返回一個不帶參數的函數句柄,從而實現了參數傳遞的功能。

          使用status和defaultStatus屬性改變狀態欄信息
          status和defaultStatus是window對象的屬性,用于設置狀態欄信息,語法為:
          window.status="message";
          window.defaultStatus="message";

          其中status屬性就是用于設置狀態欄顯示的文本。而defaultStatus表示默認的狀態欄信息,例如默認情況下IE瀏覽器會顯示“完畢”,而Firefox瀏覽器則顯示“完成”。可以通過defaultStatus來改變這一信息。
          使用alert、prompt和confirm語句與用戶進行交互
          這三個語句都是彈出一個對話框,來處理用戶輸入。它們都是window對象的一個方法,在實際使用時,常常省略window,而直接寫成alert("hello")類似的形式。下面分別介紹:
          1.alert語句
          該語句的原型是:
          window.alert(message);
          alert接收一個參數,該參數將轉換為字符串直接顯示在對話框上,例如:
          alert("hello,ajax");
          2.prompt語句
          該語句的原型是:
          window.prompt(message,defaultValue);
          prompt用于讓用戶輸入一個值,其中message表示提示信息,defaultValue表示顯示于文本框的初始值;函數返回用戶的輸入。對話框包括【確定】和【取消】兩個按鈕,用戶單擊【確定】按鈕則返回文本框中的內容,單擊【取消】則返回null。例如:
          var userName=window.prompt("請輸入您的姓名:","");
          alert("hello,"+userName);
          其中prompt提示用戶輸入其姓名,使用userName變量獲取用戶輸入,并顯示歡迎信息。

          3.confirm語句
          該語句的原型是:
          window.confirm(message);
          其作用是顯示一條信息讓用戶確認,彈出的對話框包括【確定】和【取消】兩個按鈕,如果用戶單擊【確定】,則confirm函數返回true,否則返回false。例如下面的語句:
          if(confirm("確定刪除該記錄嗎?")){
          ?????? //刪除記錄的操作
          }else{
          ?????? //不刪除記錄
          }

          主站蜘蛛池模板: 琼海市| 高淳县| 腾冲县| 马龙县| 通辽市| 大兴区| 张家口市| 长武县| 侯马市| 洛隆县| 黄梅县| 绍兴市| 海兴县| 遂溪县| 洪泽县| 儋州市| 梨树县| 清远市| 西藏| 休宁县| 屏山县| 财经| 九台市| 淅川县| 永顺县| 古浪县| 朝阳区| 奉贤区| 花垣县| 淅川县| 桃江县| 永仁县| 井研县| 安乡县| 巴南区| 绍兴市| 广河县| 盐边县| 富阳市| 桃园市| 都昌县|