2012-12-19 79 views
1

我有一個名爲parent.html的頁面。從那裏我稱之爲模態對話child.html。 我有一個鏈接按鈕child.html關閉模式對話框。同時我想將價值從child.html傳遞到parent.html如何將子頁面的值發送到父頁面

如何將子頁面的值發送到父頁面?

+0

看看這個:http://stackoverflow.com/questions/13561033/how-to-pass-a-parameter-from- iframe-to-iframe/13562677#13562677 –

回答

2

如果您的子頁面(child.html)與父頁面位於相同的域,則可以從child.html調用父窗口的功能。

在子頁面(child.html):

<a href="..." onclick="parent.callFromChildPage('ABC')">Button Title</a> 

,並在父頁(parent.html):

<script language="javascript"> 
function callFromChildPage(a_value){ 
    alert("A value from child window is :" + a_value); // 'ABC' 
} 
</script> 

還有,如果你能在使用jQuery子頁面(child.html),您可以直接設置父頁面的元素,如下所示:

<a href="..." onclick="$('#test', window.parent.document).html('ABC');">Button Title</a> 
+0

是否安全代碼 –

+0

「window.parent」對象是官方支持的文檔對象模型(DOM)。 請看這裏: http://www.w3schools.com/jsref/prop_win_parent.asp 這裏: https://developer.mozilla.org/en-US/docs/DOM/window.parent 請請注意,parent.html和child.html需要存在於同一個域中。 如果沒有,訪問被認爲是一種跨站腳本。 – naota

0

基本上定義了一個javascript函數e父頁面,然後在子頁面中通過使用opener簡單地調用該函數。

window.opener讓你參考打開文檔的窗口對象。

子html:

<html> 
    <head> 
    <script type="text/javascript"> 
     $('a#child-link').click(function(e){ 
      e.preventDefault(); 
      var tmp = $('input#child-input').value(); 
      window.opener.getChildVar(tmp); 
     }); 
    </script> 
    </head> 
    <body> 
    <input type="text" name="child-text" id="child-input" value="test text" /> 
    <a href="#" id="child-link">link</a> 
    </body> 
</html> 

父HTML:

<html> 
    <head> 
    <script type="text/javascript"> 
     function getChildVar(val) { 
     var received_val = val; 
     } 
    </script> 
    </head> 
</html> 
相關問題