更新父页面上的Div,最好使用jQuery

时间:2013-04-20 03:07:43

标签: javascript jquery

我之前使用jQuery的.html()函数来更新内容,但它一直在.ajax()函数中,例如:

$.ajax({
       padding : 15,
       type    : "POST",
       cache   : false,
       url     : "anyPage.php?page=ajax",
       data    : $(this).serializeArray(),
       success: function(data) {
        $("#Div").html(data);   
       }
      });

问题是,为了利用TinyMCE,我不得不在iframe里面的Fancybox中打开它,但我遇到了发布数据的问题,这是通过将表单提交到PHP $ _GET URL来解决的(非常肯定)这不是它实际上被调用的东西,然后关闭Fancybox:

<? if($_GET['page'] == "X"){
$_SESSION["X"] = $_POST['X']; 
echo '<script type="text/javascript">
    parent.$.fancybox.close();
</script>';
die();} ?>

成功将Post变量传递给Session变量,然后我可以从主页面内调用它。问题是,我还想刷新主页上的div,并遇到问题。

我认为我不能使用.ajax(),至少我试图使用它没有任何运气。

我也尝试过使用.html()和.load()与.parent()等等的不同组合。我尝试过的几个例子(其他事情早已被覆盖):

parent.document.getElementById("Div").innerHTML = "something";

parent.$("Div").html("Some updated text");

插入如下:

echo '<script type="text/javascript">
    parent.$("Div").html("Some updated text");
    parent.$.fancybox.close();
</script>';

没有发现任何有用的东西。想知道是否有人可以借给我一些帮助。

1 个答案:

答案 0 :(得分:1)

如果域匹配,则在iframe和父文档中,您应该能够使用以下任一方式访问父级:

window.parent
parent
top          // If the parent is the top-level document
window.top

由于parenttop可以被javascript覆盖,我会使用window.parentwindow.top