1. 程式人生 > >BOM學習筆記(一)開啟新連結四種方式、視窗屬性、定時器

BOM學習筆記(一)開啟新連結四種方式、視窗屬性、定時器

BOM:專門操作瀏覽器視窗的物件

1、window物件充當2個角色:

      1. 全域性物件

      2. 包含BOM常用物件   

3、開啟新連結方式:

在HTML的<a>標籤的學習中,我們知道了target屬性和_self和_blank兩個值的區別

target-->目標視窗的名稱

    _self: 自動獲得當前視窗名稱(可返回)

    _blank: 建立一個新視窗,隨機生成一個不重複的名字

    視窗名:記憶體中同一個視窗名只能開啟一個,後開啟的,會替換先開啟的

(官方解釋:name,聲明瞭新視窗的名稱。這個名稱可以用作標記 <a> 和 <form> 的屬性 target 的值。如果該引數指定了一個已經存在的視窗,那麼 open() 方法就不再建立一個新視窗,而只是返回對指定視窗的引用。)

 

開啟新連結方式四種方式:

      ① 在當前視窗開啟新連結,可後退

 html: target="_self"

            js:[window.]open("url","_self")

      ② 在當前視窗開啟新連結,禁止後退

            js:location.replace("url");//使用新連結,替換舊連結,同時開啟新連線

      ③ 在新視窗開啟新連結,可同時開多個

     html: target="_blank"

            js:[window.]open("url","_blank");

      ④ 在新視窗開啟新連結,只能開啟一個

         html: target="自定義視窗名"

js:[window.]open("url","自定義視窗名");

      

例、HTML:  <a href="javascript:fun1()" >在當前視窗開啟,可後退</a><br>

    SCRIPT:  function fun1(){open("http://tmooc.cn","_self"); }

 

4、window物件的屬性:視窗大小與定位:

  大小:

①innerHeight/Width: 返回視窗的文件顯示區的高度/寬度只讀屬性)    

outerHeight/Width: 返回視窗的外部高度/寬度只讀屬性

    ②screen.height/width: 桌面完整解析度寬高

      screen.availHeight/availWidth: 去掉工作列後剩餘解析度的寬高

  調整大小:window.resizeTo(width,height)接受瀏覽器視窗新寬度和新高度

            window.resizeBy(width,height)接受新視窗與原視窗的寬度和高度

位置:

①pageYOffset/pageXOffset:設定或返回當前頁面相對於視窗顯示區左上角的 X/Y 位置。

  ② 視窗左上角x座標:window.screenLeft||window.screenX;

                y座標:window.screenTop||window.screenY;

  ③將視窗移動到指定座標:window.moveTo(x,y)

  ④事件發生時,滑鼠相對於整個螢幕的座標:event.screenX|screenY

 

 

 

5、定時器:

 

setInterval() :週期性定時器,按照指定的週期(以毫秒計)來呼叫函式或計算表示式。方法會不停地呼叫函式,直到 clearInterval() 被呼叫或視窗被關閉。

setTimeout() :一次性定時器,在指定的毫秒數後呼叫函式或計算表示式。可以用setTimeout()實現setInterval()功能, 在一次性定時器的結尾,每次都重新啟動一個一次性定時器就達到一直執行的效果了

 

 

實現一次性/週期性定時器的三個步驟

    ①動畫的每一步要執行的任務(函式物件)

function step(){

      每一步要做的事情

/*一次性定時器需要根據條件判斷是否有必要繼續啟動下一個定時器*/       

 }

    ②將一步的任務放入定時器,反覆呼叫,並獲得儲存定時器的編號

   一次性:timer=setTimeout(step,間隔毫秒數|等待毫秒數)

       週期性:timer=setInterval (step,間隔毫秒數|等待毫秒數)

 

    ③清理定時器(必須用全域性變數,臨時儲存定時器的編號)

        clearTimeout(timer)

        停止正在等待的定時器

 

 

例:

<!DOCTYPE html>

<html>

<head>

    <title>定時器</title>

</head>

<body>

<html>

<body>

<div id="clock" style="height:30px"></div>   

<button onclick="window.clearInterval(int)">停止</button><!--清理定時器-->

<script type="text/javascript">

var int=window.setInterval("clock()",1000); 

/*第一個引數是要定時執行的函式,第二個是間隔時間(ms),執行完獲得一個返回值,用來停止定時器的*/

function clock(){ 

var d=new Date();     //獲得當前時間

var t=d.toLocaleTimeString();//將時間格式化

document.getElementById("clock").innerHTML=t;//將格式化後的時間寫入div

/*如果使用setTimeout()方法,需要把上邊setInterval改為setTimeout,並在此處多一步var int=setTimeout("clock()",1000); */

}

</script>

</body>

</html>