DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JavaScript子窗口調用父窗口變量和函數的方法
JavaScript子窗口調用父窗口變量和函數的方法
編輯:關於JavaScript     

本文實例講述了JavaScript子窗口調用父窗口變量和函數的方法。分享給大家供大家參考。具體如下:

示例1:子窗口是新打開的窗口

父窗口:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
  <title>parent</title>
  <script type="text/javascript">
    var parentPara='parent';
    function parentFunction() {
      alert(parentPara);
    }
  </script>
</head>
<body>
  <button onclick="parentFunction()">顯示變量值</button>
  <button onclick="window.open('child.html')">打開新窗口</button>
</body>
</html>

子窗口:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
  <title>child</title>
  <script type="text/javascript">
    function modify() {
      opener.parentPara='child';
    }
  </script>
</head>
<body>
  <button onclick="opener.parentFunction()">調用父頁面的方法</button>
  <button onclick="modify()">更改父頁面中變量的值</button> 
</body>
</html>

只要在變量和函數前面加opener就可以訪問指定資源了。

但是當父窗口被關閉時,再如此使用會報一個錯:"被調用的對象已與其客戶端斷開連接。"

示例2:子頁面是父頁面的一個iframe

父頁面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
  <title>parent</title>
  <script type="text/javascript">
    function fill() {
      //alert(frame1.window.childPara);  //顯示frame1內的變量值
      var str=document.getElementById('txt1').value; //獲得文本框內輸入的值
      frame1.window.div1.innerHTML=str; //將值填入子頁面的一個div中
    }
  </script>
</head>
<body>
  <div style="background-color:yellow;width:300px;height:300px;">
    父頁面
    <iframe id="frame1" src="child.html" frameborder="0" scrolling="no" width="120px" height="120px"></iframe>
    <br/><br/><br/><br/>
    <input id="txt1" type="text"/>
    <button onclick="fill()">將文本框內值填充入子界面</button>
  </div>
</body>
</html>

子頁面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
  <title>child</title>
  <script type="text/javascript">
    function fun() {
      parent.fill();
    }
  </script>
</head>
<body>
  <div style="background-color:lightblue;width:100px;height:100px;">
    <b>子頁面</b><br/>
    <a href="#" onclick="fun()">同父頁面按鈕</a>
    <div id="div1" style="color:red;">
    </div>
  </div>
</body>
</html>

小發現:刷新父頁面時,其中的iframe也會隨之刷新;刷新iframe時,父頁面不會刷新。

希望本文所述對大家的JavaScript程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved