JavaScript之Bom對象

JavaScript之Bom對象

  • 概念:Browser Object Model 瀏覽器對象模型
  • 將瀏覽器的各個組成部分封裝成對象。

(一)、Window:窗口對象

1、Window:窗口對象方法

1.1 與彈出框有關的方法:

1.1.1 alert()方法:顯示帶有一段消息和一個確認按鈕的警告框
  1. 定義和用法
    alert() 方法用於顯示帶有一段消息和一個確認按鈕的警告框。
  2. 語法
    alert(message) 也可以寫成 window.alert(message)
    message 要在 window 上彈出的對話框中顯示的純文本(而非 HTML 文本)
1.1.2 confirm():顯示帶有一段消息以及確認按鈕和取消按鈕的對話框
var flag = confirm("您確定要退出嗎?");
alert(flag);

如果用戶點擊確定按鈕,則方法返回true
如果用戶點擊取消按鈕,則方法返回false

1.1.3 prompt():顯示可提示用戶輸入的對話框
var result =  prompt("請輸入用戶名:");
alert(result);
//返回值:獲取用戶輸入的值。

在這裏插入圖片描述

1.2 與打開關閉有關的方法:

1.2.1 open():打開一個新的瀏覽器窗口。
open();//會自動打開一個窗口

通過點擊按鈕來打開一個窗口,返回一個新的window對象。

<html>
<head>
    <script type="text/javascript">
        function open_win() {
            window.open("http://www.w3school.com.cn")
        }
    </script>
</head>
<body>
    <input type=button value="打開窗口" onclick="open_win()">
</body>
</html>
1.2.2 close():關閉瀏覽器窗口。

下面爲通過按鈕打開新的window對象,並且能夠通過關閉按鈕關閉新打開的window對象。

<input id="openBtn" type="button" value="打開窗口">
<input id="closeBtn" type="button" value="關閉窗口">
      
    <script>
        var openBtn =  document.getElementById("openBtn");
        var newWindow;
        //綁定單擊事件
        openBtn.onclick = function(){
            //打開新窗口
            newWindow = open("https://www.w3school.com.cn/jsref/met_win_open.asp");
        }
        var closeBtn =  document.getElementById("closeBtn");
        //綁定單擊事件
        closeBtn.onclick = function(){
            //打開新窗口
            newWindow.close();
        }
    </script>
  1. 屬性
  2. 特點:
  • Window對象不需要創建可以直接使用window對象。 window.方法名();
  • window引用可以省略。 方法名();

1.3 與定時器有關的方法:

1.3.1 一次性定時器:setTimeout()和clearTimeout()

setTimeout():在指定的毫秒數後調用函數或計算表達式。
返回值:唯一標識,用於取消定時器。

setTimeout(code,millisec)

//code	必需。要調用的函數後要執行的 JavaScript 代碼串。
//millisec	必需。在執行代碼前需等待的毫秒數。

下面顯示倒計時兩秒彈出窗口

setTimeout("fun()",2000);
function fun(){
	alert('boom~~');
}

clearTimeout():取消由 setTimeout() 方法設置的 timeout。

var id = setTimeout("fun()",2000);
clearTimeout(id);//取消setTimeout()返回值爲id的timeout 
function fun(){
	alert('boom~~');
}
1.3.2 循環定時器:setInterval()和clearInterval()

setInterval() :按照指定的週期(以毫秒計)來調用函數或計算表達式。
下面顯示每兩秒彈出一次

setInterval(fun,2000);
function fun(){
	alert('boom~~');
}

clearInterval():取消由 setInterval() 設置的 timeout。

利用window對象實現輪播圖案例

分析:
1.在頁面上使用img標籤展示圖片
2.定義一個方法,修改圖片對象的src屬性
3.定義一個定時器,每隔3秒調用方法一次

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>輪播圖</title>
    
</head>

<body>
    <img id="img" src="banner_1.jpg" width="100%">
    <script>
        //修改圖片src屬性
        var number = 1;
        function fun (){
            number ++;
            //判斷number是否大於3
            if(number>3){
                number = 1;
            }
            //獲取img對象
            document.getElementById("img").src = "banner_"+ number +".jpg";
           
        }
        //定義定時器
        setInterval("fun()",3000);
    </script>
</body>
</html>

2、Window:窗口對象屬性

2.1 獲取其他BOM對象

2.1.1 history:對History對象的只讀引用。

//獲取當前頁面的歷史對象
var h1 = history;
alert(h1);
2.1.2 location:用於窗口或框架的 Location 對象。
2.1.3 Navigator:對 Navigator 對象的只讀引用。
2.1.4 Screen:對Screen對象的只讀引用。

2.2 獲取DOM對象

2.2.1 document:對 Document 對象的只讀引用
window.document.getElementById("");
//也可以省略前面的window
document.getElementById("");

(二)、Location:地址欄對象

2.1 Location 對象方法

2.1.1 reload():重新加載當前文檔。【刷新】

<body>
    <input type="button" id="btn" value="刷新">
    <script>
        //reload方法,定義一個按鈕,點擊按鈕,刷新當前頁面
        //1.獲取按鈕
        var btn = document.getElementById("btn");
        //2.綁定單擊事件
        btn.onclick = function (){
            //3.刷新頁面
            location.reload();
        }
    </script>
</body>

2.2 Location 對象屬性

2.2.1 href:設置或返回完整的 URL。

獲取當前頁面的href

//獲取href
var href = location.href;
alert(href);

點擊按鈕,去訪問www.itcast.cn官網

var goItcast = document.getElementById("goItcast");
//2.綁定單擊事件
goItcast.onclick = function (){
    //3.訪問www.itcast.cn官網
    location.href = "https://www.itcast.cn";
}

2.3 案例:倒計時頁面自動跳轉

分析:

  1. 顯示頁面效果。
  2. 倒計時讀秒效果實現
    2.1定義一個方法,獲取span標籤,修改span標籤體內容
    2.2定義一個定時器,一秒執行該方法
  3. 在方法中判斷時間如果<=0 , 則跳轉到首頁
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>自動跳轉</title>
    <style>
        p{
            text-align: center;
        }
        span{
            color: red;
        }
    </style>
</head> 
<body>
  
    <p>
        <span id="time">5</span>秒之後,自動跳轉到首頁...
    </p>
    <script>
        var second = 5;
        var time = document.getElementById("time");

        //定義一個方法,獲取span標籤,修改span標籤體內容
        function showTime(){
            second--;
            //判斷時間如果<=0 , 則跳轉到首頁
            if(second<=0){
                //跳轉到首頁
                location.href = "https://www.baidu.com";
            }          
            time.innerHTML = second+"";
        }
        //設置定時器,1秒執行該方法
        setInterval(showTime,1000);
    </script>
</body>
</html>

(三)、History:地址欄對象

  • History 對象包含用戶(在瀏覽器窗口中)訪問過的 URL。
  • History 對象是 window 對象的一部分,可通過 window.history 屬性對其進行訪問

3.1 History 對象屬性

3.1.1 length:返回當前窗口歷史列表中的 URL 數量。

<body>
    <input type="button" id="btn" value="獲取歷史記錄個數">
    <script>
        //1.獲取按鈕
        var btn = document.getElementById("btn");
        //2.綁定單擊事件
        btn.onclick = function(){
            //3.獲取當前窗口歷史記錄的個數
            var length = history.length;
            alert(length);
        }
    </script>
</body>

3.2 History 對象方法

back()、forward()、go()加載 history 列表中的某個頁面。

  1. back():加載 history 列表中的前一個 URL。
  2. forward():加載 history 列表中的下一個 URL。
  3. go():加載 history 列表中的某個具體頁面。正數:前進幾個歷史記錄;負數:後退幾個歷史記錄。

下面的例子可以在頁面上創建一個前進按鈕:

<html>
<head>
    <script type="text/javascript">
        function goForward() {
            window.history.forward()
        }
    </script>
</head>
<body>
    <input type="button" value="Forward" onclick="goForward()" />
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章