JavaScript--BOM

JavaScript--BOM

BOM(browser object model)瀏覽器對(duì)象模型

一燃领、window對(duì)象

window是瀏覽器的一個(gè)實(shí)例士聪,在瀏覽器中,window對(duì)象有雙重角色猛蔽,它既是通過JavaScript訪問瀏覽器窗口的一個(gè)接口剥悟,又是ECMAScript規(guī)定的Global對(duì)象灵寺。

1.window對(duì)象的方法
①alert("content")
語法:window.alert(”content”)
功能:顯示帶有一段消息和一個(gè)確認(rèn)按鈕的警告框

②confirm(“message")
語法:window.confirm(“message")
功能:顯示一個(gè)帶有指定消息和OK及取消按鈕的對(duì)話框
返回值:如果用戶點(diǎn)擊確定按鈕,則confirm()返回true
如果用戶點(diǎn)擊取消按鈕区岗,則confirm()返回false

③prompt(“text,defaultText")
語法:window.prompt(“text,defaultText")
參數(shù)說明:
text:要在對(duì)話框中顯示的純文本(而不是HTML格式的文本)
defaultText:默認(rèn)的輸入文本
返回值:如果用戶單擊提示框的取消按鈕略板,則返回null
如果用戶單擊確認(rèn)按鈕,則返回輸入字段當(dāng)前顯示的文本

注意:所有的全局變量和全局方法都被歸在window上

<body>
    <div id="box">
        <span>iphone6s</span>
        <input type="button" value="刪除" id="btn">
    </div>
    <script>
       var age=15;
       function sayAge(){
          alert('我'+window.age);
       }
       // 聲明一個(gè)全局變量
       window.username="marry";   // var username="marry";
       // 聲明一個(gè)全局方法
       window.sayName=function(){
          alert("我是"+this.username);
       }
       //sayAge();
       //window.sayName();

       // confirm()
       // 獲取按鈕,綁定事件
       var btn=document.getElementById("btn");
       btn.onclick=function(){
           // 彈出確認(rèn)對(duì)話框
           var result=window.confirm("您確定要?jiǎng)h除嗎慈缔?刪除之后該信息\n將不可恢復(fù)叮称!");
           if(result){
              document.getElementById("box").style.display="none";
           }
       }
       // 彈出輸入框
       //var message=prompt("請(qǐng)輸入您的星座","天蝎座");
       //console.log(message);
    </script>
</body>
全局變量.jpg
全局函數(shù).jpg

④open(pageURL,name,parameters)
語法:window.open(pageURL,name,parameters)
功能:打開一個(gè)新的瀏覽器窗口或查找一個(gè)已命名的窗口
參數(shù)說明:
pageURL:子窗口路徑
name:子窗口句柄。(name聲明了新窗口的名稱藐鹤,方便后期通過name對(duì)子窗口進(jìn)行引用)
parameters :窗口參數(shù)(各參數(shù)用逗號(hào)分隔)

⑤close( )
語法:window.close( )
功能:關(guān)閉瀏覽器窗口

index1.html:

<head>
    <meta charset="UTF-8">
    <title>open</title>
</head>
<body>
    <input type="button" value="退 出" id="quit">
    <script>
       window.onload = function(){
          // 打開子窗口瓤檐,顯示newwindow.html
          window.open("newwindow.html","newwindow","width=400,height=200,left=0,top=0,toolbar=no,menubar=no,scrollbars=no,location=no,status=no");
          //name的作用:在引用子窗口的時(shí)候通過name引用
          var quit = document.getElementById("quit");
          // 點(diǎn)擊關(guān)閉當(dāng)前窗口
          quit.onclick = function(){
              window.close();
          }
       }
    </script>
</body>

newwindow.html:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h1>hello window.open</h1>
</body>
</html>
設(shè)置窗口屬性.jpg

⑥定時(shí)器

JavaScript是單線程語言,單線程就是所執(zhí)行的代碼必須按照順序娱节。

超時(shí)調(diào)用:
語法:setTimeout(code,millisec)
功能:在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式
參數(shù)說明:
1挠蛉、code:要調(diào)用的函數(shù)或要執(zhí)行的JavaScript代碼串
2、millisec:在執(zhí)行代碼前需等待的毫秒數(shù)

說明:setTimeout()只執(zhí)行code一次肄满。如果要多次調(diào)用谴古,請(qǐng)使用setInterval()或者讓code自身再次調(diào)用setTimeout()

setTimeout方法返回一個(gè)ID值,通過它取消超時(shí)調(diào)用

清除超時(shí)調(diào)用:
語法:clearTimeout(id_of_settimeout)
功能:取消由setTimeout()方法設(shè)置的timeout
參數(shù)說明:
1悄窃、 id_of_settimeout :由setTimeout()返回的ID值讥电,該值標(biāo)識(shí)要取消的延遲執(zhí)行代碼塊

<body>
    <script>
       //setTimeout("alert('hello')",4000);
       
       //匿名函數(shù)
       var timeout1=setTimeout(function(){
          alert("hello");
       },2000)

       //自定義函數(shù)
       var fnCall=function(){
          alert("world");
       }
       clearTimeout(timeout1);
        //推薦:
       //setTimeout(fnCall,5000);
    </script>
</body>

間歇調(diào)用:
語法:setInterval(code,millisec)
功能:每隔指定的時(shí)間執(zhí)行一次代碼
參數(shù)說明:
1、code:要調(diào)用的函數(shù)或要執(zhí)行的代碼串轧抗。
2恩敌、millisec:周期性執(zhí)行或調(diào)用code之間的時(shí)間間隔,以毫秒計(jì)

<body>
    <script>
       /* var intervalId=setInterval(function(){
           console.log("您好");
        },1000)

        // 10秒之后停止打印
        setTimeout(function(){
            clearInterval(intervalId);
        },10000);*/
        
        var num=1,
            max=10,
            timer=null;
       
       // 每隔1秒針num遞增一次横媚,直到num的值等于max纠炮,清除定時(shí)器
      /* timer=setInterval(function(){
           console.log(num);
           num++;
           if(num>max){
              clearInterval(timer);
           }
       },1000)*/

       // 使用超時(shí)調(diào)用實(shí)現(xiàn)
       function inCreamentNum(){
           console.log(num);   // 1 2 3 10 
           num++;      
           if(num<=max){
              setTimeout(inCreamentNum,1000);
           }else{
              clearTimeout(timer);
           }
       }
       timer=setTimeout(inCreamentNum,1000);
    </script>
</body>

二、location對(duì)象

location對(duì)象提供了與當(dāng)前窗口中加載的文檔有關(guān)的信息灯蝴,還提供了一些導(dǎo)航的功能恢口,它既是window對(duì)象的屬性,也是document對(duì)象的屬性穷躁。

1.location對(duì)象的常用屬性
①location.href
語法:location.href
功能:返回當(dāng)前加載頁面的完整URL
說明: location.href與window.location.href等價(jià)

②語法:location.hash
功能:返回URL中的hash(#號(hào)后 跟零或多個(gè)字符)耕肩,如果不包含
則返回空字符串。

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
       .box1{height:400px;background:#ccc;}
       .box2{height:600px;background:#666;}
    </style>
</head>
<body>
    <div class="box1" id="top"></div>
    <div class="box2"></div>
    <input type="button" id="btn" value="返回頂部">
    <script>
       //console.log(location.href);
       //file:///E:/BaiduNetdiskDownload/JavaScript/js%E8%B5%84%E6%96%99%E5%92%8C%E6…E5%9F%BA%E7%A1%80%EF%BC%88%E6%BA%90%E4%BB%A3%E7%A0%81%EF%BC%89/index6.html
       //console.log(location.hash); 
       //在連接中加入錨點(diǎn) 打印錨點(diǎn)#top
       var btn=document.getElementById("btn");
       btn.onclick=function(){
          location.hash="#top";
       }
       console.log(location.pathname);
    </script>
</body>

③location.host
語法:location.host
功能:返回服務(wù)器名稱和端口號(hào)(如果有)

④location.hostname
語法:location.hostname
功能:返回不帶端口號(hào)的服務(wù)器名稱问潭。

⑤location.pathname
語法:location.pathname
功能:返回URL中的目錄和(或)文件名猿诸。

⑥location.port
語法:location.port
功能:返回URL中指定的端口號(hào),如果沒有狡忙,返回空字符串梳虽。

⑦location.protocol
語法:location.protocol
功能:返回頁面使用的協(xié)議。

⑧l(xiāng)ocation.search
語法:location.search
功能:返回URL的查詢字符串灾茁。這個(gè)字符串以問號(hào)開頭窜觉。

xxxx?id=55&name=marry;
location.search;
"?id=55&name=marry;"

2.locating對(duì)象的位置操作
改變?yōu)g覽器位置的方法:
location.href屬性
location對(duì)象其他屬性也可改變URL:
location.hash
location.search

①location.replace()
語法:location.replace(url)
功能:重新定向URL谷炸。
說明: 使用location.replace不會(huì)在歷史記錄中生成新紀(jì)錄。

②location.reload()
語法:location.reload()
功能:重新加載當(dāng)前顯示的頁面禀挫。
說明:
? location.reload()有可能從緩存中加載
? location.reload(true)從服務(wù)器重新加載

<body>
    <input type="button" value="刷新" id="reload">
    <script>
      /*  setTimeout(function(){
            //location.href='index6.html';
            // window.location='index6.html';
            location.replace("index6.html");
        },1000)*/
         document.getElementById("reload").onclick=function(){
             location.reload(true);
         }
    </script>
</body>

三旬陡、history對(duì)象

history對(duì)象保存了用戶在瀏覽器中訪問頁面的歷史記錄

①history.back()
語法:history.back()
功能:回到歷史記錄的上一步
說明:相當(dāng)于使用了history.go(-1)

②history.forward()
語法:location.forward()
功能:回到歷史記錄的下一步
說明:相當(dāng)于使用了history.go(1)

③history.go(-n)
語法:history.go(-n)
功能:回到歷史記錄的前n步

④history.go(n)
語法:history.go(n)
功能:回到歷史記錄的后n步

<body>
    <p>這是index11.html</p>
    <p><input type="button" value="后退" id="btn"></p>
    <p><input type="button" value="前進(jìn)" id="btn2"></p>
    <p><input type="button" value="前進(jìn)兩步" id="btn3"></p>
    <script>
        var btn=document.getElementById("btn");
        var btn2=document.getElementById("btn2");
        var btn3=document.getElementById("btn3");
        //點(diǎn)擊btn按鈕時(shí)回到歷史記錄的上一步
        btn.onclick=function(){
            //history.back();
            //history.go(-1);
            history.go(-2);//回到前兩步
        }
        //點(diǎn)擊btn2按鈕來到歷史記錄的下一步
        btn2.onclick=function(){        
            //history.forward();
            history.go(1);
        }
        //點(diǎn)擊btn3按鈕來到歷史記錄的下一步
        btn3.onclick=function(){        
            history.go(2);
        }
    </script>
</body>

四、Screen對(duì)象

包含有關(guān)客戶端顯示屏幕的信息
①screen.availWidth
語法:screen.availWidth
功能:返回可用的屏幕寬度

②screen.availHeight
語法:screen.availHeight
功能:返回可用的屏幕高度

<body>
    <script>
        //獲取屏幕的寬和高
        console.log("頁面寬:"+screen.availWidth);
        console.log("頁面高:"+screen.availHeight);
        //獲取窗口的寬和高
        console.log("pageWidth:"+window.innerWidth);
        console.log("pageHeight:"+window.innerHeight);
    </script>
</body>

五特咆、Navigator對(duì)象

UserAgent:用來識(shí)別瀏覽器名稱季惩、版本录粱、引擎 以及操作系統(tǒng)等信息的內(nèi)容腻格。
可以判斷瀏覽器的類型
判斷設(shè)備的終端是移動(dòng)還是PC

<head>
    <meta charset="UTF-8">
    <title>Navigator</title>
</head>
<body>
    <script>
       //console.log(navigator.userAgent);
       // 判斷瀏覽器
       function getBrowser(){
           var explorer = navigator.userAgent,browser;
           //indexOf():返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置,如果沒有出現(xiàn)過啥繁,返回-1
           if(explorer.indexOf("MSIE")>-1){
              browser = "IE";
           }else if(explorer.indexOf("Chrome")>-1){
              browser = "Chrome";
           }else if(explorer.indexOf("Opera")>-1){
              browser = "Opera";
           }else if(explorer.indexOf("Safari")>-1){
              browser = "Safari";
           }
           return browser;
       }
       var browser = getBrowser();
       console.log("您當(dāng)前使用的瀏覽器是:"+browser);
       // 判斷終端
       function isPc(){
          var userAgentInfo = navigator.userAgent,
              Agents = ["Andriod","iPhone","symbianOS","windows phone","iPad","iPod"],
              flag = true,i;
              console.log(userAgentInfo);
           for(i=0;i<Agents.length;i++){
              if(userAgentInfo.indexOf(Agents[i])>-1){
                 flag = false;
                 break;
              }
           }
           return flag;
       }
       var isPcs = isPc();
       console.log(isPcs);
    </script>
</body>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末菜职,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子旗闽,更是在濱河造成了極大的恐慌酬核,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件适室,死亡現(xiàn)場離奇詭異嫡意,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)捣辆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門蔬螟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人汽畴,你說我怎么就攤上這事旧巾。” “怎么了忍些?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵鲁猩,是天一觀的道長。 經(jīng)常有香客問我罢坝,道長廓握,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任嘁酿,我火速辦了婚禮隙券,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘痹仙。我一直安慰自己是尔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布开仰。 她就那樣靜靜地躺著拟枚,像睡著了一般薪铜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恩溅,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天隔箍,我揣著相機(jī)與錄音,去河邊找鬼脚乡。 笑死蜒滩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奶稠。 我是一名探鬼主播俯艰,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼锌订!你這毒婦竟也來了竹握?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤辆飘,失蹤者是張志新(化名)和其女友劉穎啦辐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜈项,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芹关,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了紧卒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侥衬。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖常侦,靈堂內(nèi)的尸體忽然破棺而出浇冰,到底是詐尸還是另有隱情,我是刑警寧澤聋亡,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布肘习,位于F島的核電站,受9級(jí)特大地震影響坡倔,放射性物質(zhì)發(fā)生泄漏漂佩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一罪塔、第九天 我趴在偏房一處隱蔽的房頂上張望投蝉。 院中可真熱鬧,春花似錦征堪、人聲如沸瘩缆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庸娱。三九已至着绊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熟尉,已是汗流浹背归露。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留斤儿,地道東北人剧包。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像往果,于是被迫代替她去往敵國和親疆液。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • ECMASript是javascript的核心. 但如果要在Web中使用javascript, 那么BOM(瀏覽器...
    劉翾閱讀 213評(píng)論 0 0
  • BOM簡介 BOM即瀏覽器對(duì)象模型(Brower Object Model)瀏覽器對(duì)象包括 :Window(窗口)...
    草木不語只深深綠閱讀 219評(píng)論 0 0
  • window對(duì)象 瀏覽器的一個(gè)實(shí)例棚放。在瀏覽器中枚粘,window對(duì)象有雙重角色,既是通過JavaScript訪問瀏覽器...
    soso101閱讀 265評(píng)論 0 0
  • 一飘蚯、JS前言 (1)認(rèn)識(shí)JS 也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示)福也,會(huì)使用HT...
    凜0_0閱讀 2,769評(píng)論 0 8
  • 兒子今年結(jié)婚暴凑,孫麗哲跳了槽峦甩,鴨姐恢復(fù)了單身,和我一樣的邁進(jìn)了貴族的行列现喳,都是好事凯傲。 每年我們變化都挺大的,孫麗哲和...
    嘿別叫我老關(guān)閱讀 639評(píng)論 1 0