2014-11-06 65 views
1

我有一個關於jquery和colorbox覆蓋的問題。我無法在stackoverflow上找到好的解決方案。將iframe覆蓋值傳遞給父頁面

我想從iframe覆蓋中獲得一些價值(myvalue)。

代碼在我的父子(home.php):

$(".iframe").colorbox({ 
iframe:true, 
width:"1000px", 
height:"500px",  
    // Begin to clos the overlay 
onCleanup: function() { 
var myvalue = $("#myvalue").val(); 
alert('myvalue'); 
} 
} 

鏈接,打開我的iframe:

<a href="child.php" class="iframe">OPEN OVERLAY BY IFRAME METHOD</a> 

代碼在我的iframe覆蓋(child.php):

$(".mydiv").click(function(){ 
    window.parent.$(this).attr('value'); 
    parent.$.colorbox.close(); 
    return false; 
}); 

Html在我的覆蓋(child.php):

<div class="mydiv" value="TESTPASSINGVALUE"></div> 

想法幫助我?

謝謝!

回答

0

我終於找到了我的問題的解決方案與localStorage的

代碼在子頁面:

$(".mydiv").click(function(){ 
val = $(this).attr('value'); 
localStorage.setItem("myvalue", "val"); 
parent.$.colorbox.close(); 
return false; 
}); 

代碼在父頁面:

$(".iframe").colorbox({ 
iframe:true, 
width:"1000px", 
height:"500px",  
// Begin to clos the overlay 
onCleanup: function() { 
var test = localStorage.myvalue; 
alert(test); 
} 
} 

感謝您的幫助:)

1

您需要對iframe元素的引用。假設你的iframe元素有id「iframe」。然後,

onCleanup: function() { 
    var myvalue = $("#iframe").contents().find("#myvalue").val(); 
    alert('myvalue'); 
} 

您需要使用contents()來訪問iframe中的內容。另外,iframe網址必須在同一個域中的父(同源策略)

+0

Upvoting是因爲您的提示「使用內容()訪問iframe中的內容」是我缺少的鏈接。 – 2015-04-23 10:31:20

0
$("#myid", parent.document.body); 
+0

謝謝。我把你的線放在我的iframe子頁面上。如果我在我的父頁面上寫這個:'myvalue = $(「#myvalue」)。val();警報(myvalue);'我有一個警告「未定義」 – Sylvain 2014-11-06 11:09:00

+0

嘗試在IIS上託管您的示例,然後測試它 – 2014-11-06 11:17:15