學習window對象

Window 對象是 JavaScript 層級中的頂層對象。
Window 對象代表一個瀏覽器窗口或一個框架。
Window 對象會在 < body> 或 < frameset> 每次出現時被自動創建。


一、Window對象屬性

1.closed

返回窗口是否已被關閉

<script>
var myWindow = window.open('https://www.baidu.com/', '百度', 'width=500,height=500')

var loop = setInterval(function() {     
    if(myWindow.closed) {    
        clearInterval(loop);    
        alert('closed');    
    }    
}, 1000);  

</script>

2.frames

返回窗口中< iframe>框架集合。

<iframe src="./echo.xhtml" name="echo" width="400" height="300" scrolling="no"></iframe>
<iframe src="./index.xhtml"></iframe>

<script>
var frm = frames["echo"];

alert(frames.length)
alert(frm.location + '讀取不到,說明 iframe框架 在腳本執行完構建')

window.addEventListener("load", function() {
    alert(frm.location)
    alert(frm.name)
    alert(frm.document.body.style.fontSize)
}, false);

</script>

3.defaultStatus

defaultStatus 屬性可設置或返回窗口狀態欄中的默認文本。該屬性可讀可寫。
該文本會在頁面加載時被顯示。
注意: defaultStatus屬性在IE,火狐,Chrome,和Safari默認配置是不能正常工作。要允許腳本來改變狀態欄文本,用戶必須把配置屏幕首選項設置爲false dom.disable_window_status_change。(或在Firefox:”工具 - 選項 - 內容 - 啓用的JavaScript /”高級” - 允許腳本更改狀態欄文本”)。

<script>
window.defaultStatus="這是默認狀態欄文本! !";
</script>

4.innerHeight 和 innerWidth

獲取窗口的高度與寬度(不包含工具條與滾動條)
注意:IE 8 及更早 IE版本不支持這兩個屬性。

var w=window.innerWidth;
var h=window.innerHeight;

5.outerHeight 和 outerWidth

outerHeight屬性設置或返回一個窗口的外部高度,包括所有界面元素(如工具欄/滾動條)。
outerWidth屬性設置或返回窗口的外部寬度,包括所有的界面元素(如工具欄/滾動)。
注意:IE 8 及更早 IE版本不支持這兩個屬性。

var w=window.outerWidth;
var h=window.outerHeight;

6.opener

opener 屬性是一個可讀可寫的屬性,可返回對創建該窗口的 Window 對象的引用。
opener 屬性非常有用,創建的窗口可以引用創建它的窗口所定義的屬性和函數。
注意:只有表示頂層窗口的 Window 對象的 operner 屬性纔有效,表示框架的 Window 對象的 operner 屬性無效。

<script type="text/javascript">
function parentFun() {
    alert('調用創建MyName窗口 的窗口 的函數成功!(調用父級窗口函數)')
}
var myWindow = window.open('','MyName','width=200,height=100')
myWindow.opener.parentFun()
</script>

7.top

top 屬性返回最頂層的先輩窗口。
該屬性返回對一個頂級窗口的只讀引用。如果窗口本身就是一個頂級窗口,top 屬性存放對窗口自身的引用。如果窗口是一個框架,那麼 top 屬性引用包含框架的頂層窗口。

8.parent

parent屬性返回當前窗口的父窗口。

9.self

self 屬性可返回對窗口自身的只讀引用。等價於 Window 屬性。

//在頂層頁面打開url(跳出框架)
top.location.href = "url"

//在父窗口打開url地址
parent.location.href = "url"

//僅在本頁面打開url地址
self.location.href = "url"

實際中可能這樣使用,判斷當前location 是否爲頂層,來禁止frame引用。

 if (top.location !== self.location) {}

10.document

對 Document 對象的只讀引用。

11.history

對 History 對象的只讀引用。

12.location

用於窗口或框架的 Location 對象。

13.navigator

對 Navigator 對象的只讀引用。

14.screen

對 Screen 對象的只讀引用。

二、Window對象方法

1.alert()

2.blur()

blur() 方法可把鍵盤焦點從頂層窗口移開。

3.focus()

focus() 方法可把鍵盤焦點給予一個窗口。

4.open()

open() 方法用於打開一個新的瀏覽器窗口或查找一個已命名的窗口。

window.open(URL,name,specs,replace)





參數 說明
URL 可選。打開指定的頁面的URL。如果沒有指定URL,打開與新的空白窗口
name 可選。指定target屬性或窗口的名稱。支持以下值:
  • _blank - URL加載到一個新的窗口。這是默認
  • _parent - URL加載到父框架
  • _self - URL替換當前頁面
  • _top - URL替換任何可加載的框架集
  • name - 窗口名稱
specs 可選。一個逗號分隔的項目列表。支持以下值:

channelmode=yes|no|1|0 是否要在影院模式顯示 window。默認是沒有的。僅限IE瀏覽器
directories=yes|no|1|0 是否添加目錄按鈕。默認是肯定的。僅限IE瀏覽器
fullscreen=yes|no|1|0 瀏覽器是否顯示全屏模式。默認是沒有的。在全屏模式下的 window,還必須在影院模式。僅限IE瀏覽器
height=pixels 窗口的高度。最小.值爲100
left=pixels 該窗口的左側位置
location=yes|no|1|0 是否顯示地址字段.默認值是yes
menubar=yes|no|1|0 是否顯示菜單欄.默認值是yes
resizable=yes|no|1|0 是否可調整窗口大小.默認值是yes
scrollbars=yes|no|1|0 是否顯示滾動條.默認值是yes
status=yes|no|1|0 是否要添加一個狀態欄.默認值是yes
titlebar=yes|no|1|0 是否顯示標題欄.被忽略,除非調用HTML應用程序或一個值得信賴的對話框.默認值是yes
toolbar=yes|no|1|0 是否顯示瀏覽器工具欄.默認值是yes
top=pixels 窗口頂部的位置.僅限IE瀏覽器
width=pixels 窗口的寬度.最小.值爲100

replace Optional.Specifies規定了裝載到窗口的 URL 是在窗口的瀏覽歷史中創建一個新條目,還是替換瀏覽歷史中的當前條目。支持下面的值:

  • true - URL 替換瀏覽歷史中的當前條目。
  • false - URL 在瀏覽歷史中創建新的條目。

6.close()

close() 方法用於關閉瀏覽器窗口。

7.confirm(msg)

confirm()方法用於顯示一個帶有指定消息和確認及取消按鈕的對話框。
如果訪問者點擊”確定”,此方法返回true,否則返回false。

<script type="text/javascript">
deleteFun()

function deleteFun(){
    if (window.confirm('確認刪除?')) {
        alert('刪除了')
    } else {
        alert('暫時不刪了')
    }
}
</script>

8.prompt(msg,defaultText)

prompt()方法用於顯示可提示用戶進行輸入的對話框。
這個方法返回用戶輸入的字符串。

<p>點擊按鈕查看輸入的對話框。</p>
<button onclick="myFunction()">點我</button>
<p id="demo"></p>
<script>
function myFunction() {
    var x;
    var person=prompt("請輸入你的名字", "Harry Potter");
    if (person != null && person != "") {
        x = "你好 " + person + "! 今天感覺如何?";
        document.getElementById("demo").innerHTML = x;
    }
}
</script>

9.setInterval()

setInterval() 方法可按照指定的週期(以毫秒計)來調用函數或計算表達式。
setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數。

<input type="text" id="clock" />
<script>
var flag = self.setInterval(function(){

    document.getElementById("clock").value = new Date().toLocaleTimeString();

},1000);
</script>

10.clearInterval(id_of_setinterval)

clearInterval() 方法可取消由 setInterval() 設置的 timeout。
clearInterval() 方法的參數必須是由 setInterval() 返回的 ID 值。

clearInterval(flag)

11.setTimeout(code,millisec,lang)

setTimeout() 方法用於在指定的毫秒數後調用函數或計算表達式。

code必需。要調用的函數後要執行的 JavaScript 代碼串。
millisec必需。在執行代碼前需等待的毫秒數。
lang可選。腳本語言可以是:JScript | VBScript | JavaScript
var t = setTimeout(function(){alert("Hello")}, 3000)

12.clearTimeout(id_of_settimeout)

clearTimeout() 方法可取消由 setTimeout() 方法設置的 timeout。
clearTimeout()方法的參數必須是由setTimeout()返回的ID值。

clearTimeout(t)

13.moveBy()、moveTo()、resizeBy()、resizeTo()、scrollBy()、scrollTo()

這些暫時沒有用到過,簡單測試了幾個,效果不是很理想,等用到了再做補充。

window.moveBy(x,y)moveBy() 方法可相對窗口的當前座標把它移動指定的像素。
window.moveTo(x,y)moveTo() 方法可把窗口的左上角移動到一個指定的座標。
resizeBy(width,height)resizeBy() 方法用於根據指定的像素來調整窗口的大小。 注意: 此方法定義指定窗口的右下角角落移動的像素,左上角將不會被移動(它停留在其原來的座標).
window.resizeTo(width,height)方法用於把窗口大小調整爲指定的寬度和高度。
scrollBy(xnum,ynum)scrollBy() 方法可把內容滾動指定的像素數。 注意: 要使此方法工作 window 滾動條的可見屬性必須設置爲true!
scrollTo(xpos,ypos)scrollTo() 方法可把內容滾動到指定的座標。



學習資料:http://www.runoob.com/jsref/obj-window.html

發佈了44 篇原創文章 · 獲贊 66 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章