close

按此前往javascript完整教學目錄

 

 

window物件的成員

1. opener:若A視窗是在B視窗中,由window.open()函式所開啟,則說「B視窗是A視窗的opener」。所以,在A視窗中若有程式碼:

window.opener,其指的就是B視窗的window物件,當然亦可以利用window.opener.物件成員來更改B視窗中的內容。opener在呼叫時不能省略其父物件window

設,伺服器資料夾中有opentest.php檔案,其程式碼為:

<body>

opentest

<input type="button" value="按我" id="tt" onclick="

window.open('test1.php','blank_');" />

</body>

又有test.php檔案,其程式碼為:

<body>

test1

<input type="button" value="按我" onclick="window.opener.document.getElementById('tt').value='tset1到此一遊';" />

</body>

//執行opentest.php後,按下按鈕,顯示:

image

//按下test1.php網頁中的按鈕,顯示:

image

 

2. parentwindow.parent,其指的就是「當前視窗之父視窗」,當然亦可以利用window.parent.物件成員來更改「當前視窗之父視窗」的網頁內容。parent在呼叫時不能省略其父物件window。用法與opener很類似。

3. topwindow.top,其指的就是「當前視窗在其視窗架構中的始祖視窗」,當然亦可以利用window.top.物件成員來更改始祖視窗的網頁內容。top在呼叫時不能省略其父物件window。用法與opener很類似。

4. self:指的就是當前視窗本身。在呼叫時不能省略其父物件window

5. length:其值為當前視窗的子視窗數量。如:

<body>

<iframe  src="test1.php" width="300" height="50" 

style="position:absolute; top:50px; left:10px; "></iframe>

<iframe src="test1.php" width="300" height="50" 

style="position:absolute; top:150px; left:10px;"></iframe>

<iframe src="test1.php" width="300" height="50"

style="position:absolute; top:250px; left:10px;"></iframe>

<script>

document.write(window.length);   //顯示3,表示當前視窗有3個子視窗(就是那3個嵌入式框架的視窗)

</script>

</body>

6. status:這個屬性表示狀態列的訊息。如:

window.status="這是狀態列訊息";

執行後顯示:

7. location物件:這個屬性表示網址列的網址。如:

window.location="test1.php";

執行之後,網頁便會跳轉到test1.php

8. closed:此屬性是個布林值。若指定的視窗已關閉,則此屬性之值為true,若沒關閉則為false

9. name:此為當前視窗的名稱,其寫法不可省略父物件window。若一個視窗有用name屬性來設定視窗名稱,則在用open([“URL位址”] [,”名稱”] [,”選項”])來開啟彈跳視窗時,可將該視窗的name代入參數名稱來呼叫該視窗。如:

設,今在伺服器資料夾有test1.phptest2.phptset3.php三個網頁文件檔:

test1.php程式碼如下:

<body style="color:#063">

這是test1這是test1這是test1這是test1這是test1這是test1這是test1這是test1

這是test1這是test1這是test1這是test1這是test1這是test1這是test1這是test1

</body>

test2.php程式碼如下:

<body>

這是test2

<input type="button" value="按我" onclick="window.open('test1.php','test3')"/>

</body>

test3.php程式碼如下:

<body>

<script type="text/javascript">

window.name="test3"; </script>

這是test3

</body>

又有frametest.php檔,程式碼如下:

<body>

<iframe src="test1.php" width="300" height="50" 

style="position:absolute; top:50px; left:10px; "></iframe>

<iframe src="test2.php" width="300" height="50"

style="position:absolute; top:150px; left:10px;"></iframe>

<iframe src="test3.php" width="300" height="50"

style="position:absolute; top:250px; left:10px;"></iframe>

</body>

//執行frametest.php檔,顯示:

image

//按下「按我」按鈕,顯示:

image

 

10. 重要的備註:上述一切物件方法或是物件成員對於「非當前視窗」的操作,只限於單一瀏覽者、特定瀏覽器、特定的瀏覽行為。例如:若BA的父視窗,瀏覽者甲在A視窗對其父視窗進行了某些操作,把B視窗中的輸入控制項的值給更改了,而另一個瀏覽者乙在瀏覽B視窗的時候,看到的輸入控制項的值並不是更改過後的。這些操作雖然可以達成即時互動,但畢竟無法更改網頁檔的程式碼,故只是伺服端與特定瀏覽者的「雙向即時互動」。若要達到瀏覽者與其他瀏覽者之間的「群體即時互動」,還是要依靠資料庫或是互動平台吧!

 

 

 

上一篇:window物件的成員函式

下一篇:其他window子物件

arrow
arrow

    埃伯 發表在 痞客邦 留言(0) 人氣()