我之前使用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>';
没有发现任何有用的东西。想知道是否有人可以借给我一些帮助。
答案 0 :(得分:1)
如果域匹配,则在iframe和父文档中,您应该能够使用以下任一方式访问父级:
window.parent
parent
top // If the parent is the top-level document
window.top
由于parent
和top
可以被javascript覆盖,我会使用window.parent
或window.top