BOM編程詳解

BOM編程:
BOM是(Broswer Object Model) 瀏覽器對象模型編程。在網頁被加載後,js引擎會將我們的瀏覽器的各個部分封裝成對象,我們通過操作這些不同的對象,來實現一些效果,這就叫BOM編程。
window對象方法:
setInterval() 每經過指定毫秒值後就會執行指定的代碼。一調用此方法就會返回指定任務的ID。
clearInterval() 根據任務的ID取消定時任務。
setTimeout() 經過指定毫秒值後執行指定的代碼一次。
註冊事件的方式:
方式一:直接在html元素上註冊。
方式二:可以用js代碼找到對應的對象再註冊。
常用的事件:
onload在瀏覽器完成對象的裝載後立即觸發。
鼠標移動相關:
onmousemove 當鼠標移出對象邊界時觸發
onmouseout 當鼠標移到對象上時觸發。
焦點相關:
onfocus當對象獲得焦點時觸發。
onblur 在對象失去輸入焦點時觸發。
其他:
onchange 當對象或者選中區的內容改變的時候觸發。
onsubmit 當表單將要被提交的時候觸發。

window對象

open(): 在一個窗口中打開頁面
參數一: 打開的頁面
參數二:打開的方式。 _self: 本窗口 _blank: 新窗口(默認)
參數三: 設置窗口參數。比如窗口大小

setInterval(): 設置定時器(執行n次)
setTimeout(): 設置定時器(只執行1次)
定時器: 每隔n毫秒調用指定的任務(函數)
參數一:指定的任務(函數)
參數二:毫秒數

clearInterval(): 清除定時器
clearTimeout(): 清除定時器
清除任務
參數一:需要清除的任務ID

alert(): 提示框
僅僅有確定按鈕

confirm(): 確認提示框
返回值就是用戶操作
true: 點擊了確定
false: 點擊了取消

propmt(): 輸入提示框
返回值就是用戶操作
true: 點擊了確定
false: 點擊了取消

注意:
因爲window對象使用非常頻繁,所以當調用js中的window對象的方法時,可以省略對象名不寫。

<script type="text/javascript">
/*
    window對象:
    1.open():打開另一個窗口
    參數1:設置打開的網頁連接
    參數2:打開的方式
    參數3:設置打開的窗口的大小
    2.設置定時器:
    setInterval("執行的函數","每隔多少秒執行")--- 執行n次
    setTimeOut("執行的函數","每隔多少秒執行") -- 執行一次
    3.清除定時任務
     clearInterval(): 清除定時器
     clearTimeout(): 清除定時器
     清除任務
     參數一:需要清除的任務ID
     4.alert(): 提示框
     僅僅有確定按鈕
     5.confirm有確定還有取消的提示框
     確定:true
     取消:false
     6. propmt(): 輸入提示框
     返回值就是用戶操作
     true: 點擊了確定
     false: 點擊了取消    */
    function testOpen(){
        window.open("1.廣告.html","_blank","width=200px;height=300px");
        }
    //開啓定時任務
    var intervalId;
    function testSetInterval(){
        //調用上面的testOpen()方法,在這裏設置了一個定時任務,每一個定時任務其實都是有一個任務id的
        intervalId = window.setInterval("testOpen()",3000);
        }
    //清除定時任務
    function testClearInterval(){
        window.clearInterval(intervalId);
        }
    //創建一個定時任務,只執行一次
    var timeoutId;
    function testSetTimeout(){
        timeoutId = window.setTimeout("testOpen()",3000);
        }
    //清楚定時任務,setTimeOut()設定的定時任務
    function testClearTimeout(){
        window.clearTimeout(timeoutId);
        }
    //alert提示框
    //window.alert("hello");
    //彈出一個提示框,有確定還有取消
    function testConfirm(){
        var flag = window.confirm("確定要刪除硬盤上的內容嗎");
        if(flag){
            alert("內容正在刪除中...");
            }else{
                }
        }
    //創建一個方法,生成內容輸入提示框
    function testPropmt(){
        window.prompt("請輸入你的密碼");
        }
</script>
</head>
<body>
<input type="button" value="open" onclick="testOpen()" />
<input type="button" value="setInterval" onclick="testSetInterval()" />
<input type="button" value="clearInterval" onclick="testClearInterval()" />
<input type="button" value="setTimeout" onclick="testSetTimeout()" />
<input type="button" value="clearTimeout" onclick="testClearTimeout()" />
<input type="button" value="confirm" onclick="testConfirm()" />
<input type="button" value="propmt" onclick="testPropmt()" />
</body>

location對象:
href屬性: 代表的是地址欄的URL,可以獲取和設置URL。URL表示統一資源定位符
reload方法: 刷新當前頁面
需求:實現每隔一秒刷新一次頁面

<script type="text/javascript">
/*
    2.location對象
    href屬性: 代表的是地址欄的URL,可以獲取和設置URL。URL表示統一資源定位符
    reload方法: 刷新當前頁面
    需求:實現每隔一秒刷新一次頁面
*/
    //獲取地址欄中的url
    function getHref(){
        //獲取當前的地址欄中的url
        var url = window.location.href;
        alert(url);
        }
    //設置地址中的url
    function setHref(){
        window.location.href="1.廣告.html";
        }
    //reload方法: 刷新當前頁面,需求:實現每隔一秒刷新一次頁面
    function refresh2(){
        window.location.reload();
        }
    window.setTimeout("refresh2()",1000);
</script>
</head>
<body>
<input type="button" value="getHref" onclick="getHref()" />
<input type="button" value="setHref" onclick="setHref()" />
<input type="button" value="refresh" onclick="refresh2()" />
</body>

history對象
forward(): 前進到下一頁
back(): 後退上一頁
go(): 跳轉到某頁(正整數:前進 負整數:後退) 1 -2

<script type="text/javascript">
/*
    3.history對象
    forward(): 前進到下一頁
    back(): 後退上一頁
    go(): 跳轉到某頁(正整數:前進  負整數:後退)  1   -1
*/
    //前進的方法
    function testForward(){
        //window.history.forward();
        window.history.go(1);
        }
</script>
</head>
<body>
<a href="3.history2.html">超鏈接</a>
<input type="button" value="forward" onclick="testForward()" />
</body>
<script type="text/javascript">
    //寫一個方法沒執行這個方法的時候回退到上個頁面
    function testBack(){
        //window.history.back();
        window.history.go(-1);
        }
</script>
</head>
<body>
<input type="button" value="back" onclick="testBack()" />
</body>

screen對象(重點掌握四個屬性):
availHeight和availWidth
是排除了任務欄之後的高度和寬度
width和height
是整個屏幕的像素值

<script type="text/javascript">
/*
    4.screen對象(學習四個屬性)
    availHeight和availWidth
    是排除了任務欄之後的高度和寬度
    width和height
    是整個屏幕的像素值		*/
    document.write("屏幕的實際寬度"+window.screen.width);
    document.write("<br>");
    document.write("屏幕的實際高度"+window.screen.height);
    document.write("<br>");
    document.write("屏幕的可用寬度"+window.screen.availWidth);
    document.write("<br>");
    document.write("屏幕的可用高度"+window.screen.availHeight);
    document.write("<br>");
</script>

事件編程

javascript事件編程的三個要素:(以單擊事件爲例講解事件編程三要素)
事件源:html標籤
事件 :click dblclick mouseover。。。。
監聽器: 函數
javascript事件分類:
點擊相關的:
單擊: onclick
雙擊: ondblclick
焦點相關的:(獲得焦點輸入框內提示內容消失,失去焦點驗證用戶名信息並且在輸入框內提示)
聚焦: onfocus
失去焦點: onblur
選項相關的:(select選項改變,做一個籍貫選項)
改變選項: onchange
鼠標相關的:(畫一個div區塊進行演示)
鼠標經過: onmouseover
鼠標移除: onmouseout
頁面加載相關的:(一般用在body標籤中,用於網頁加載完畢後還需執行什麼操作進行觸發)
頁面加載: onload

<script type="text/javascript">
/*
javascript事件分類:
            點擊相關的:
                 單擊: onclick
                 雙擊: ondblclick
            焦點相關的:(獲得焦點輸入框內提示內容消失,失去焦點驗證用戶名信息並且在輸入框內提示)
                聚焦:  onfocus
                失去焦點: onblur
            選項相關的:(select選項改變,做一個籍貫選項)
                改變選項: onchange
            鼠標相關的:(畫一個div區塊進行演示)
                鼠標經過: onmouseover
                鼠標移除: onmouseout
            頁面加載相關的:(一般用在body標籤中,用於網頁加載完畢後還需執行什麼操作進行觸發)
                頁面加載: onload
*/
    //寫一個單擊事件的監聽
    function testClick(){
        alert("單擊事件被觸發");
        }
    //協議而過雙擊事件的監聽
    function testdbClick(){
        alert("雙擊事件被執行");
        }
    //給獲取焦點寫一個監聽,當獲取焦點的時候,輸入框內部的內容消失
    function testOnfocus(){
        //獲取id爲username的input標籤對象
        var username =  document.getElementById("username");
        //將上面的input標籤對象的values屬性置爲空串
        username.value="";
        }
    //給input標籤設置一個失去焦點的事件,當失去焦點的時候,給予一個提示,這個用戶名到底可用不可用
    function testBlur(){
        //獲取input標籤對象的value值和sapn標籤的對象
        var username = document.getElementById("username").value;
        var usernameTip = document.getElementById("usernameTip");
        //拿着用戶輸入的用戶名,做匹配,做判斷
        if("jack"==username){
            usernameTip.innerHTML="該用戶名已經被佔用".fontcolor("red");
            }else{
                usernameTip.innerHTML="該用戶可用".fontcolor("green");
                }
        }
    //改變選項: onchange 做一個監聽
    function testChange(){
        //1.獲取用戶選擇了哪個選項
        var sheng = document.getElementById("sheng").value;
        var shi = document.getElementById("shi");
        shi.innerHTML="<option>--請選擇--</option>";
        //alert(sheng);
        //2.根據用戶的選項進行判斷,動態的給市級的下拉選中天充對應的option選項
        if(sheng=="shanxi"){
            shi.innerHTML="<option>西安</option><option>渭南</option><option>寶雞</option>"
            }else if(sheng=="sichuan"){
                shi.innerHTML="<option>成都</option><option>雅安</option><option>廣安</option>"
                }else if(sheng=="guangdong"){
                shi.innerHTML="<option>廣州</option><option>深圳</option><option>佛山</option>"
                }
        }
     //給鼠標移入加一個監聽
     function testOut(){
         alert("鼠標移入了")
         }
    //鼠標移除的事件
    function testOver(){
        alert("鼠標移出了")
        }
</script>
</head>
<body>
<input type="button" value="單擊事件" onclick="testClick()" />
<input type="button" value="雙擊事件" ondblclick="testdbClick()" />
<br />
<hr />
<input type="text" value="請輸入你的用戶名" id="username" onfocus="testOnfocus()" onblur="testBlur()"/>
<span id="usernameTip"></span>
<br />
<hr />
<select onchange="testChange()" id="sheng">
<option>--請選擇--</option>
<option value="shanxi">陝西</option>
<option value="sichuan">四川</option>
<option value="guangdong">廣東</option>
</select>
<select id="shi">
</select>
<br />
<hr />
<div style="width:300px;height:300px;border:1px solid #FF0" onmouseout="testOut()" onmouseover="testOver()"></div>
</body>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章