javascript
javascript之window对象
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的主對象主要有如下幾個:
4、window函數索引(僅對IE有效)
窗體控制函數:
窗體滾動軸控制函數:
注意區別,一個是相對當前窗口,一個是相當現在滾動條的位置。
<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 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://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 οnlοad="openwin()"> 瀏覽器讀頁面時彈出窗口; 方法二:<body οnunlοad="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()可以實現,打開的窗口定時關閉的效果。
對話框函數:
alert();
不說。
confirm(str);
confirm()消息對話框是排它的,也就是在用戶點擊對話框的按鈕前,不能進行任何其它操作。
if(confirm("確定跳大?")) {alert("果斷跳大"); } else {alert("猥瑣打錢"); }顯示如下:
? prompt(str1, str2);
函數有兩個參數
- str1 -- 要顯示在消息對話框中的文本,不可修改
- str2 -- 文本框中的內容,可以修改
顯示如下:
時間等待與間隔函數:
- JavaScript setTimeout() 函數
- JavaScript clearTimeout() 函數
- JavaScript setInterval() 函數
- JavaScript clearInterval() 函數
1、setTimeout()、clearTimeout() 在指定的時間后調用函數
語法:
- setTimeout(fun,time); fun:函數體或函數名,time指定時間,單位為毫秒。
- clearTimeout(id); 取消指定的setTimeout函數將要執行的代碼
2、setInterval()、clearInterval(value) 在間隔指定的事件后重復調用函數
語法:
- setInterval(fun1,time) fun:函數體或函數名,time指定的時間,單位為毫秒。會返回一個值,這個值是統計該函數的個數用的,第一個是1,第二個就是2,指明是第幾個setInterval函數。
- clearInterval(value) value:setInterval()函數返回的值,根據這個值可以停止setInterval()的重復?!?/li>
注意,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.htmldocument.write(location.protocol + "<br/>"); // http:document.write(location.host + "<br/>"); // localhost:4889document.write(location.hostname + "<br/>"); // localhostdocument.write(location.port + "<br/>"); // 4889document.write(location.pathname + "<br/>"); // /javascriptTest.htmldocument.write(location.search + "換行<br/>"); //http://localhost:4889/javascriptTest.html?id=1&name=張三 如果路徑是這樣,則輸出 ?id=1&name=%E5%BC%A0%E4%B8%89document.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.11document.write(navigator.appName + "<br/>"); //Netscapedocument.write(navigator.appVersion + "<br/>"); //5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11document.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对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好用的Eclipse 插件
- 下一篇: javascript之window对象详