1

我之前使用过 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>';

还没有找到任何可行的方法。想知道是否有人可以借给我一些帮助。

4

1 回答 1

1

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

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

因为parent并且top可以被javascript覆盖,所以我会选择window.parentwindow.top

于 2013-04-20T07:29:32.557 回答