在javascript中,window的意思為「視窗」,是一個內建的宿主物件,表示瀏覽器視窗,所有瀏覽器都支援該物件。所有JavaScript全域性物件、函數以及變數均會自動成為window物件的成員。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
在javascript中,window的意思為「視窗」,是一個內建的宿主物件。
window物件是BOM中所有物件的核心,除了是BOM中所有物件的父物件外,還包含一些視窗控制函數。
宿主物件就是執行JS指令碼的環境提供的物件,是瀏覽器提供的物件。所有的BOM和DOM都是宿主物件。
Window 物件
所有瀏覽器都支援 window 物件。它表示瀏覽器視窗。
所有 JavaScript 全域性物件、函數以及變數均自動成為 window 物件的成員。
全域性變數是 window 物件的屬性。
全域性函數是 window 物件的方法。
甚至 HTML DOM 的 document 也是 window 物件的屬性之一:
window.document.getElementById("header");
與此相同:
document.getElementById("header");
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>
新建表單函數:
window.open(url, name, features, replace);
open函數引數說明:
open方法範例:
<a href="2.html" target="2">在新視窗開啟連線</a> <a href="#" onclick="window.open('http://www.google.com','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);
函數有兩個引數
var sResult=prompt("請在下面輸入你的姓名", "撼地神牛");if(sResult!=null) { alert(sResult + "已經超越神的殺戮"); }else{ alert("無名氏已經超越神的殺戮"); }
顯示如下:
時間等待與間隔函數:
1、setTimeout()、clearTimeout() 在指定的時間後呼叫函數
語法:
setTimeout(function () { document.write("隔3秒後觸發"); }, 3000) //在3秒後輸出 setTimeout(fun1, 5000); //在5秒後輸出 function fun1() { document.write("函數名的方式5秒後觸發"); }
2、setInterval()、clearInterval(value) 在間隔指定的事件後重復呼叫函數
語法:
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://www.baidu.com" //跳轉到指定網址
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(); // 阻止事件的傳播
【相關推薦:】
以上就是javascript中window的意思是什麼的詳細內容,更多請關注TW511.COM其它相關文章!