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後,按下按鈕,顯示:
//按下test1.php網頁中的按鈕,顯示:
2. parent:window.parent,其指的就是「當前視窗之父視窗」,當然亦可以利用window.parent.物件成員來更改「當前視窗之父視窗」的網頁內容。parent在呼叫時不能省略其父物件window。用法與opener很類似。
3. top:window.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.php、test2.php、tset3.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檔,顯示:
//按下「按我」按鈕,顯示:
10. 重要的備註:上述一切物件方法或是物件成員對於「非當前視窗」的操作,只限於單一瀏覽者、特定瀏覽器、特定的瀏覽行為。例如:若B是A的父視窗,瀏覽者甲在A視窗對其父視窗進行了某些操作,把B視窗中的輸入控制項的值給更改了,而另一個瀏覽者乙在瀏覽B視窗的時候,看到的輸入控制項的值並不是更改過後的。這些操作雖然可以達成即時互動,但畢竟無法更改網頁檔的程式碼,故只是伺服端與特定瀏覽者的「雙向即時互動」。若要達到瀏覽者與其他瀏覽者之間的「群體即時互動」,還是要依靠資料庫或是互動平台吧!
留言列表