JavaScript【BOM】

幾乎所有的瀏覽器都內(nèi)嵌了javaScript引擎,使得javaScript語(yǔ)言能夠在瀏覽器環(huán)境下運(yùn)行。 那么,如果要使用javaScript語(yǔ)言來(lái)操作瀏覽器中的各種對(duì)象,就需要使用BOM模型與DOM模型。

  1. 瀏覽器對(duì)象模型BOM(Browser Object Model): 提供了獨(dú)立于內(nèi)容的、可以與瀏覽器窗口進(jìn)行互動(dòng)的對(duì)象結(jié)構(gòu)。
  2. 文檔對(duì)象模型DOM(Document Object Model): 定義訪問(wèn)和處理HTML文檔的標(biāo)準(zhǔn)方法。DOM 將HTML文檔呈現(xiàn)為帶有元素、屬性和文本的樹(shù)結(jié)構(gòu)(節(jié)點(diǎn)樹(shù))。


    BOM模型DOM模型示意圖.png

3.1 BOM編程【W(wǎng)indows對(duì)象】

方法名稱 說(shuō)明
alert() 顯示帶有一個(gè)提示信息和一個(gè)確定按鈕的警示框
prompt() 顯示可提示用戶輸入的對(duì)話框
confirm() 顯示一個(gè)帶有提示信息、確定和取消按鈕的對(duì)話框
close() 關(guān)閉瀏覽器窗口
open() 打開(kāi)一個(gè)新的瀏覽器窗口,加載給定的文檔
setTimeout() 在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式(一次調(diào)用)
clearTimeout() 取消定時(shí)器
setInterval() 按照指定的周期(以毫秒計(jì))來(lái)調(diào)用函數(shù)或表達(dá)式
clearInterval() 取消定時(shí)器
screenLeft 獲取瀏覽器相對(duì)于屏幕左上角的x坐標(biāo)
screenTop 獲取瀏覽器相對(duì)于屏幕左上角的y坐標(biāo)
  • alert()對(duì)話框

alert()方法:在頁(yè)面上彈出一個(gè)只有確定按鈕的對(duì)話框

window.alert('hello');

window作為頂層對(duì)象,可以省略

alert('hello');
  • confirm()對(duì)話框

alert()方法:在頁(yè)面上彈出一個(gè)有確定和取消按鈕的對(duì)話框。此對(duì)話框返回一個(gè)布爾值(點(diǎn)擊 “確定” 按鈕,返回true; 點(diǎn)擊 “取消” 按鈕,返回false)

if(confirm('確定要?jiǎng)h除嗎')){
    console.log('刪除');
}else{
    console.log('不刪除');
}
  • open()與close()方法

open()方法:打開(kāi)一個(gè)瀏覽器窗口。
close()方法:關(guān)閉一個(gè)瀏覽器窗口。

<input type="button" value="打開(kāi)百度" onclick="openBaidu()">
<input type="button" value="關(guān)閉百度" onclick="closeBaidu()">

    //聲明一個(gè)引用
    let obj = null;
    function openBaidu(){
        //打開(kāi)百度窗口,并讓obj指向百度窗口
        obj = window.open('http://www.baidu.com');
        //obj = open('http://www.baidu.com');       //window可以省略
    }
    function closeBaidu(){
        //關(guān)閉百度窗口
        obj.close();
    }
【示例】
<!-- 添加點(diǎn)擊事件(監(jiān)聽(tīng)按鈕行為) -->
<button onclick="toBilibili()">打開(kāi)</button>
<button onclick="closeBilibili()">關(guān)閉</button>


    // ***window對(duì)象*** 
    // window可省略
    window.alert('ok')
    window.prompt('請(qǐng)輸入密碼:');
    // let mima = window.prompt('請(qǐng)輸入密碼:')
    // console.log(mima)<===此處作用是確認(rèn)返回值===>
    window.confirm('確認(rèn)設(shè)置此密碼嗎?');
    // let con = window.confirm('確認(rèn)設(shè)置此密碼嗎?')
    // console.log(con)<===此處作用是確認(rèn)返回值===>
    let obj = null;
    function toBilibili(){
         obj = window.open('https://www.bilibili.com/')
    }
    function closeBilibili(){
         // window.close('https://www.bilibili.com/') 此操作會(huì)使頁(yè)面自己關(guān)閉
         obj.close();
    }
  • setTimeout()定時(shí)器

setTimeout()函數(shù)能夠在指定的時(shí)間間隔后,調(diào)用一個(gè)函數(shù)(此函數(shù)稱為回調(diào)函數(shù))。
注意:setTimeout()在指定的時(shí)間間隔后,只調(diào)用一次。

setTimeout(function(){
    console.log('hello,3秒到了');
},3000);

前面學(xué)過(guò),函數(shù)也是一個(gè)對(duì)象,也可以使用一個(gè)引用來(lái)指向它。所以,還可以有如下的寫(xiě)法
function callback(){
    console.log('hello,3秒到了');
}
setTimeout(callback,3000);
或者:
let callback = function(){
    console.log('hello,3秒到了');
}
setTimeout(callback,3000);
  • setInterval()定時(shí)器

setInterval()函數(shù)能夠在指定的時(shí)間間隔后,調(diào)用一個(gè)函數(shù)(此函數(shù)稱為回調(diào)函數(shù))。
注意:setInterval()在指定的時(shí)間間隔后,可以調(diào)用無(wú)限多次。

let callback = function(){
    console.log('hello,3秒到了');
}
setInterval(callback,3000);

3.2 BOM編程【Location對(duì)象】

location用于獲取或設(shè)置地址欄中的url,并且提供若干方法用于刷新或跳轉(zhuǎn)等。 location.reload() 頁(yè)面重新加載(相當(dāng)于刷新按鈕) location.href 返回或設(shè)置完整的url

<button onclick="doReload()">刷新</button>
<button onclick="toBaidu()">跳轉(zhuǎn)百度</button>
<script>
    function doReload(){
        location.reload();
    }
    function toBaidu(){
        location.;
    }
</script>

3.3 BOM編程【History對(duì)象】

history對(duì)象記錄了用戶曾經(jīng)瀏覽過(guò)的頁(yè)面(URL),并可以實(shí)現(xiàn)瀏覽器前進(jìn)與后退相似導(dǎo)航的功能。history對(duì)象就是訪問(wèn)后的URL。

  • history.back() 加載history列表中的前一個(gè)URL,也就是后退。
  • history.forward() 加載history列表中的下一個(gè)URL,也就是前進(jìn)。
  • history.go() 加載history列表中的某一個(gè)URL。
    0:當(dāng)前; -1:相當(dāng)于back(); 1:相當(dāng)于forward()
// 創(chuàng)建兩個(gè)html文件,第一個(gè)html文件中書(shū)寫(xiě):
<a href="b.html">跳轉(zhuǎn)b頁(yè)面</a>
// 第二個(gè)html文件中書(shū)寫(xiě):
<a href="javascript:history.go(-1)">回退</a>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容