DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> javascript入門之window對象【新手必看】
javascript入門之window對象【新手必看】
編輯:關於JavaScript     

window :window對象是BOM中所有對象的核心,除了是BOM中所有對象的父對象外,還包含一些窗口控制函數。

1、全局的window對象

JavaScript中的任何一個全局函數或變量都是window的屬性。

<script type="text/javascript">
 var name="撼地神牛";
 document.write(window.name);
</script>

2、window與self對象

 self對象與window對象完全相同,self通常用於確認就是在當前的窗體內。

<script type="text/javascript">
 document.write(window == self);      //必須相等,永遠都相等
  document.write(window.Top == window.self);  //判斷當前框架是否是主框架
</script>
  window、self、window.self三者是等價的。

3、window的子對象

 window的主對象主要有如下幾個:

JavaScript document 對象
JavaScript frames 對象
JavaScript history 對象
JavaScript location 對象
JavaScript navigator 對象
JavaScript screen 對象

4、window函數索引(僅對IE有效)

  窗體控制函數:

JavaScript moveBy() 函數:從當前位置水平移動窗體x個像素,垂直移動窗體y個像素,x為負數,將向左移動窗體,y為負數,將向上移動窗體。

JavaScript moveTo() 函數:移動窗體左上角到相對於屏幕左上角的(x,y)點,當使用負數做為參數時會把窗體移出屏幕的可視區域。

JavaScript resizeBy() 函數:相對窗體當前的大小,寬度調整w個像素,高度調整h個像素。如果參數為負值,將縮小窗體,反之擴大窗體。

JavaScript resizeTo() 函數:把窗體寬度調整為w個像素,高度調整為h個像素。

<body>
 <input type="button" id="btn1" value="先設置窗體固定大小!" onclick="window.resizeTo(500,500);" />
 <input type="button" id="btn2" value="再縮小10像素!" onclick="window.resizeBy(-10,-10);" />
 <input type="button" id="btn2" value="上!" onclick="window.moveBy(0,-5);" />
 <input type="button" id="btn2" value="下!" onclick="window.moveBy(0, 5);" />
 <input type="button" id="btn2" value="左!" onclick="window.moveBy(-5, 0);" />
 <input type="button" id="btn2" value="右!" onclick="window.moveBy(5, 0);" />
 <input type="button" id="btn2" value="距離左上角左邊100像素,頂部200像素" onclick="window.moveTo(100, 200);" />
</body>

 窗體滾動軸控制函數:

JavaScript scrollTo() 函數:在窗體中如果有滾動條,將橫向滾動條移動到相對於窗體寬度為x個像素的位置,將縱向滾動條移動到相對於窗體高度為y個像素的位置。

JavaScript scrollBy() 函數:如果有滾動條,將橫向滾動條移動到相對於當前橫向滾動條的x個像素的位置(就是向左移動x像素),將縱向滾動條移動到相對於當前縱向滾動條高度為y個像素的位置(就是向下移動y像素)。

注意區別,一個是相對當前窗口,一個是相當現在滾動條的位置。

<div style="height:150%; width:150%; background-color:#ddd">
 <input type="button" id="btn1" value="移動滾動條!" onclick="window.scrollTo(100,100);" />  //相當於設置絕對位置
 <input type="button" id="btn1" value="移動滾動條!" onclick="window.scrollBy(100,100);" />  //相當於累加
</div>

窗體焦點控制函數:

JavaScript focus() 函數:使窗體或空間獲得焦點

JavaScript blur() 函數:使窗體或控件失去焦點

<div>
 <input type="button" value="獲得焦點" onclick="document.getElementById('testInput').focus()" />
 <input type="button" value="失去焦點" onclick="document.getElementById('testInput').blur()" />
 <input type="text" value="text" id="testInput" onblur="alert('我已失去焦點')" />
</div>

 新建窗體函數:

JavaScript open() 函數:打開(彈出)一個新的窗體
JavaScript close() 函數:關閉窗體
JavaScript opener 屬性:通過opener可以實現跨窗體之間的通訊,但是要保證是在同一域名下,而且一個窗體要包含另一個窗體的opener。

 window.open(url, name, features, replace);

open函數參數說明:

url -- 要載入窗體的URL;
name -- 新建窗體的名稱(也可以是HTML target屬性的取值,目標);
features -- 代表窗體特性的字符串,字符串中每個特性使用逗號分隔;
replace -- 一個布爾值,說明新載入的頁面是否替換當前載入的頁面,此參數通常不用指定。

open方法示例:

 <a href="2.html" target="2">在新窗口打開連接</a>
 <a href="#" onclick="window.open('http://so.jb51.net/','2');">在已建立連接的頁面打開新地址</a>

  首先使用普通HTML鏈接打開一個頁面(target名為dreamdu),之後使用open函數打開另一個頁面,浏覽器首先要查找是否有名稱為dreamdu的窗體,如果有,就在這個窗體中加載open的地址。

  經過設置的open

window.open ('page.html', 'newwindow', 'height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no') 

   彈窗方法:

方法一:<body onload="openwin()"> 浏覽器讀頁面時彈出窗口; 

方法二:<body onunload="openwin()"> 浏覽器離開頁面時彈出窗口;

  open函數第三個參數features說明:

參數名稱 類型 說明 height Number 設置窗體的高度,不能小於100 left Number 說明創建窗體的左坐標,不能為負值 location Boolean 窗體是否顯示地址欄,默認值為no resizable Boolean 窗體是否允許通過拖動邊線調整大小,默認值為no scrollable Boolean 窗體中內部超出窗口可視范圍時是否允許拖動,默認值為no toolbar Boolean 窗體是否顯示工具欄,默認值為no top Number 說明創建窗體的上坐標,不能為負值 status Boolean 窗體是否顯示狀態欄,默認值為no width Number 創建窗體的寬度,不能小於100

  特性字符串中的每個特性使用逗號分隔,每個特性之間不允許有空格。

  window.open函數新建立窗體後會返回新建窗體的window對象,通過此對象可以控制窗體(移動,改變大小,關閉)。

  close函數:

<input type="button" value="關閉已經打開的窗體!" onclick="window.close();" />

  self.close();配合上setTimeout()可以實現,打開的窗口定時關閉的效果。

  對話框函數:

JavaScript alert() 函數:彈出消息對話框(對話框中有一個OK按鈕)
JavaScript confirm() 函數:彈出消息對話框(對話框中包含一個OK按鈕與Cancel按鈕)
JavaScript prompt() 函數:彈出消息對話框(對話框中包含一個OK按鈕、Cancel按鈕與一個文本輸入框)
  alert();

  不說。

  confirm(str);

  confirm()消息對話框是排它的,也就是在用戶點擊對話框的按鈕前,不能進行任何其它操作。

if(confirm("確定跳大?"))
{
 alert("果斷跳大");
}
else
{
 alert("猥瑣打錢");
}

 顯示如下:

prompt(str1, str2);

  函數有兩個參數

str1 -- 要顯示在消息對話框中的文本,不可修改
str2 -- 文本框中的內容,可以修改

var sResult=prompt("請在下面輸入你的姓名", "撼地神牛");
if(sResult!=null)
{
 alert(sResult + "已經超越神的殺戮");
}
else
{
 alert("無名氏已經超越神的殺戮");
}

 顯示如下:

 時間等待與間隔函數:

JavaScript setTimeout() 函數
JavaScript clearTimeout() 函數
JavaScript setInterval() 函數
JavaScript clearInterval() 函數

  1、setTimeout()、clearTimeout()  在指定的時間後調用函數

  語法:

setTimeout(fun,time);  fun:函數體或函數名,time指定時間,單位為毫秒。
clearTimeout(id);  取消指定的setTimeout函數將要執行的代碼

setTimeout(function () {
 document.write("隔3秒後觸發"); 
 }, 3000) //在3秒後輸出

 setTimeout(fun1, 5000); //在5秒後輸出
 function fun1() {
 document.write("函數名的方式5秒後觸發");
 }

 2、setInterval()、clearInterval(value)  在間隔指定的事件後重復調用函數

  語法:

setInterval(fun1,time)  fun:函數體或函數名,time指定的時間,單位為毫秒。會返回一個值,這個值是統計該函數的個數用的,第一個是1,第二個就是2,指明是第幾個setInterval函數。
clearInterval(value)    value:setInterval()函數返回的值,根據這個值可以停止setInterval()的重復。 

var i = 0;
var h = setInterval(function () {
 document.write("3秒輸出一次<br/>");
 i++;
 if (i >= 3) {
 clearInterval(h);
 document.write("停止輸出");
 }
}, 3000);

 注意,javascript是單線程的,因此,這個定時函數實際上是通過插入執行隊列的方式來實現。

  如下面的代碼:

function fn() { 
  setTimeout(function(){alert('can you see me?');},1000); 
  while(true) {} 
}  

alert();永遠都不會執行,因為線程一直被死循環占用了。

window.location子對象

  解析URL對象location

  location對象的屬性有:href,protocal,host,hostname,port,pathname,search,hash

document.write(location.href + "<br/>"); // http://localhost:4889/javascriptTest.html
 document.write(location.protocol + "<br/>"); // http:
 document.write(location.host + "<br/>"); // localhost:4889
 document.write(location.hostname + "<br/>"); // localhost
 document.write(location.port + "<br/>"); // 4889
 document.write(location.pathname + "<br/>"); // /javascriptTest.html
 document.write(location.search + "換行<br/>"); //http://localhost:4889/javascriptTest.html?id=1&name=張三 如果路徑是這樣,則輸出 ?id=1&name=%E5%BC%A0%E4%B8%89
 document.write(location.hash); //http: //localhost:4889/javascriptTest.html#kk=你好?id=1&name=張三 如果路徑是這樣,則輸出 #kk=你好?id=1&name=張三

 載入新文檔

    location.reload()  重新加載頁面

    location.replace()  本窗口載入新文檔

    location.assign()   本窗口載入新文檔

    location = "http://so.jb51.net/"  //跳轉到指定網址

    location = "search.html"        //相對路徑跳轉

    location = "#top"      //跳轉到頁面頂部

  浏覽歷史

    History()對象的back()與forward()  與浏覽器的“後退”,"前進"功能一樣。

    history.go(-2);  後退兩個歷史記錄

  浏覽器和屏幕信息

    navigator.appName  Web浏覽器全稱

    navigator.appVersion  Web浏覽器廠商和版本的詳細字符串

    navigator.userAgent  客戶端絕大部分信息

    navagator.platform   浏覽器運行所在的操作系統

 document.write(navigator.userAgent + "<br/>"); // Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
 document.write(navigator.appName + "<br/>"); //Netscape
 document.write(navigator.appVersion + "<br/>"); //5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
 document.write(navigator.platform); //Win32

窗口的關系

    parent == self  只有頂級窗口才返回true

     parent和top屬性允許腳本引用它的窗體的祖先,通常窗體是通過<iframe>元素創建的,可以用來獲取頂級窗口。

5、event事件對象

  最有用的兩個操作:阻止事件冒泡。有時return false;不管用,這個或許就管用了。

//IE:
window.event.cancelBubble = true;//停止冒泡
window.event.returnValue = false;//阻止事件的默認行為

//Firefox:
event.preventDefault();// 取消事件的默認行為 
event.stopPropagation(); // 阻止事件的傳播

以上就是本文的全部內容,希望對大家有所幫助,同時也希望多多支持!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved