将值从iframe叠加传递到父页面

时间:2014-11-06 09:43:44

标签: javascript php jquery

我有关于jquery和colorbox overlay的问题。我无法在stackoverflow上找到好的解决方案。

我想从iframe overlay获得一些价值(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>

帮助我的想法?

谢谢!

3 个答案:

答案 0 :(得分:1)

您需要引用iframe元素。假设您的iframe元素具有id“iframe”。然后,

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

您需要使用contents()来访问iframe中的内容。此外,iframe URL必须与父(同源策略)在同一域中

答案 1 :(得分:0)

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

答案 2 :(得分: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);
}
}

感谢大家的帮助:))