1. 程式人生 > 實用技巧 >JS 瀏覽器BOM

JS 瀏覽器BOM

BOM:Browser Object Model  瀏覽器物件模型

2.組成:
window :視窗物件
1.建立:
2.方法:
*與彈出框有關
1.alert(); 彈出警告框
2.confirm(); 顯示帶有一段訊息和確認按鈕的對話方塊
如果使用者點選確定按鈕則方法返回true,如果使用者點選取消按鈕,則方法返回false
 1  //confirm練習
 2      var flag = confirm("您確定要退出嗎?");
3 if(flag){ 4 //退出操作 5 6 alert("歡迎再次光臨") 7 8 9 }else{ 10 //提示 11 alert("手抖了嗎"); 12 }


3.prompt(); 顯示可提示使用者輸入的對話方塊
返回值,用來回去使用者輸入的資訊
1 //prompt練習 輸入框 2
var result = prompt("請輸入使用者名稱");
3 alert(result);


*與開啟關閉有關的方法

1.close();關閉瀏覽器視窗
當前視窗,誰呼叫我,我關誰
2.open();開啟一個新的瀏覽器視窗
返回新的window 物件
 1 //開啟一個新視窗
 2 
 3      <input id="openBtn" type="button" value="開啟視窗">
 4          <input id="closeBtn" type="button" value="關閉視窗">
 5      var newWindow;
 6     var
openBtn = document.getElementById("openBtn"); 7 openBtn.onclick=function(){ 8 //開啟視窗 9 newWindow= open("http://www.baidu.com"); 10 } 11 //關閉 12 var closeBtn = document.getElementById("closeBtn"); 13 closeBtn.onclick=function(){ 14 //關閉視窗 15 newWindow.close(); 16 }


*與定時器有關的
1.setTimeout(); 在指定的毫秒數後呼叫函式或計算表示式
clearTimeout();取消上述
引數:
1.js程式碼或方法物件
2.毫秒值
返回值:
唯一標號,用於取消定時器


2.setInterval();指定週期
clearInterval();取消
 1 //一次性的定時器
 2      var id = setTimeout("alert('boom~~~')",3000);
 3 
 4      //取消
 5      clearTimeout(id)
 6      function fun(){
 7 
 8          alert('boom~~~~~');
 9      }
10      //迴圈定時器
11      setInterval(fun,2000);   //每隔2秒出現彈框
定時





3:屬性:
1.獲取BOM物件
history
location
Navigator
Screen
2.獲取Dom物件
document

4.特點:
不需要建立,直接使用window使用 window.方法名();
window引用可以省略.
       Location : 位址列物件
           方法:
* 1.reload 重新整理
* 2.href :跳轉
 1 var btn = document.getElementById("btn");
 2     btn.onclick=function(){
 3         location.reload();
 4 
 5     }
 6 
 7 
 8 var href = location.href;
 9     var gotobaidu = document.getElementById("gotobaidu");
10     gotobaidu.onclick=function(){
11 
12         location.href="https://www.baidu.com";
13 
14     }
簡單的重新整理跳轉


Navigator :瀏覽器物件

Screen: 顯示器螢幕物件
History : 歷史記錄物件
              屬性:
* length 返回當前視窗歷史列表中的url值.
1 var btn = document.getElementById("btn");
2     btn.onclick =function(){
3 
4         var length = history.length;
5         alert(length)
6 
7     }

document文件物件

1.建立
window.document
document
2.方法
1.獲取Element物件
1.getElementByIdById();根據id屬性直接獲取元素物件,id一般唯一
2.getElementsByTagName();根據元素名稱獲取元素名稱們,返回值是一個數組
3.getElementsByClassName();根據class屬性值獲取元素物件們
4.getElementsByName();根據name屬性獲取元素物件們
 1 <div id="div1">div1</div>
 2 <div id="div2">div2</div>
 3 <div id="div3">div3</div>
 4 
 5 <div class="cls1">div4</div>
 6 <div class="cls1">div5</div>
 7 
 8 <input type="text" name="username">
 9 <script>
10    //1.
11    //2.
12     var divs = document.getElementsByTagName("div");
13     alert(divs.length);
14 
15     //3
16     var cls1 = document.getElementsByClassName("cls1");
17     alert(cls1.length);
18 
19     //4.
20     var user = document.getElementsByName("username");
21     alert(user.length);
22 
23 
24 </script>



2.建立其他DOM物件
createAttribute(name)
createComment()
createElement()
createTextNode()
3.屬性
. Element 元素物件
1.獲取/建立:通過document來獲取和建立
2.方法:
1.removeAttribute();:刪除屬性
2.setAttribute(): 設定屬性
Node:節點物件,其他的5個父物件

  Element物件
 1   <a>點我試一試</a>
 2   <input type="button" id="btn_set" value="設定屬性">
 3   <input type="button" id="btn_remove" value="刪除屬性">
 4 <script>
 5     //獲取btn
 6     var btn_set = document.getElementById("btn_set");
 7     btn_set.onclick=function(){
 8         //獲取a標籤
 9         var element = document.getElementsByTagName("a")[0];
10         element.setAttribute("href","https://www.baidu.com");
11     }
12 
13     var btn_remove = document.getElementById("btn_remove");
14     btn_remove.onclick=function(){
15         //獲取a標籤
16         var element = document.getElementsByTagName("a")[0];
17         element.removeAttribute("href");
18     }
19 
20 </script>

Node 節點物件

節點物件 :其他5個的父物件
特點:所有dom對可以認為是一個節點
方法:
CRUE dom 樹:
appendChild():向節點的子物件列表的節點新增位元組點
removeChild():刪除並返回當前節點的指定子節點
replaceChild():替換
 1 <title>節點物件</title>
 2     <style>
 3         div{
 4             border: 1px solid red;
 5         }
 6         #div1{
 7             width: 200px;
 8             height: 200px;
 9         }
10         #div2{
11             width: 100px;
12             height: 100px;
13         }
14         #div3{
15             width: 120px;
16             height: 120px;
17             color: aqua;
18         }
19 
20 
21     </style>
22 </head>
23 <body>
24  <div id="div1">
25      <div id="div2"></div>
26      div1
27  </div>
28 <a href="JavaScript:void(0)" id="del">刪除div的子節點</a>
29  <a href="JavaScript:void(0)" id="add">增加div的子節點</a>
30    <!--<button id="del">刪除子節點</button>-->
31    <script>
32       var element_a = document.getElementById("del");
33       element_a.onclick=function () {
34 
35 
36           var div1 = document.getElementById("div1");
37           var div2 = document.getElementById("div2");
38           div1.removeChild(div3)
39 
40       }
41       var element_add = document.getElementById("add");
42       element_add.onclick=function () {
43 
44 
45           var div1 = document.getElementById("div1");
46           var div2 = document.getElementById("div2");
47           var div3 = document.createElement("div");
48           div3.setAttribute("id","div3");
49           div1.appendChild(div3);
50 
51       }
52  </script>
節點物件

事件物件系統學習
事件:操作
事件源:元件
監聽器:程式碼
註冊監聽:將事件,事件源,監聽器結合在一起


常見的事件:
1.點選事件
onclick:單擊事件
ondblclick:雙擊事件
2.焦點事件
onblur:失去焦點 一般用於表單校驗
onfocus:元素獲得焦點

3.載入事件
onload:一張頁面或一幅影象載入完成後實現
4.滑鼠事件
onmousedown:滑鼠按鈕被按下
*定義方法時,定義一個形參,結束event物件
*event物件的button屬性可以獲得滑鼠的哪個鍵被點選了
onmousemove:滑鼠被移動
onmouseout:滑鼠從某元素被移開
onmouseover:滑鼠移動到某元素上
onmouseup:滑鼠按鍵被鬆開

5.鍵盤事件
onkeydown:鍵盤某個按鍵被按下
onkeyup:鍵盤按鍵被鬆開
onkeypress:某個按下並鬆開
6.選擇和改變
onchange:域的內容被改變
onselect:文字被選中
7,表單事件
onsubmit:確認按鈕被點選,表單提交
可以阻止表單的提交,校驗表單
onreset:重置
 //載入事件
        window.onload=function(){
            //失去焦點事件
            document.getElementById("username").onblur=function(){
                alert("失去焦點了");
            }
               //滑鼠移到元素之上
             document.getElementById("username").onmouseover=function(){
                    alert("滑鼠來了");
                }
                //滑鼠點選事件
            document.getElementById("username").onmousedown=function(event){
                //alert("滑鼠點選了");
                alert(event.button);
            }
            //鍵盤被點選事件
            document.getElementById("username").onkeydown=function(event){
                //alert("鍵盤按了");
                if (alert(event.keyCode==13)){
                    alert("提交表單");
                }
            }
            //改變了觸發
            document.getElementById("username").onchange=function(event){
                //alert("鍵盤按了");

                    alert("改變了...");
                }
            document.getElementById("city").onchange=function(event){
                //alert("鍵盤按了");

                alert("改變了...");
            }

            }


            //表單校驗
        document.getElementById("from").onsubmit=function(){
            //
            var flag=true;

            return flag;

        }




    </script>
事件的簡單案例