使用jquery从iframe刷新父页面上的div

时间:2011-05-27 17:27:24

标签: jquery iframe html parent

我正在使用fancybox的模式框和iFrame。从iFrame获得表单成功后我使用下面的代码:

<script type="text/javascript">
window.setTimeout('window.top.location.href = "/page.asp"; ',999);
</script>

<script language="javascript">
<!--
setTimeout("parent.$.fancybox.close();",1000)
//-->
</script>

这将关闭fancybox的模式框并刷新父页面。我想使用Jquery在iFrame的父页面上刷新div。

我想要在父页面上使用id =“target”刷新目标DIV,而不是整个页面。我如何使用JQuery进行操作?

TIA

下面的代码示例

父页面

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
</head>
<body>
<div id="target">
content content
</div>
</body>
</html>

表格验证时的iFrame页面

<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
</head>

<script type="text/javascript">
window.setTimeout('window.top.location.href = "/parent_page.asp"; ',999);
</script>

<script language="javascript">
<!--
setTimeout("parent.$.fancybox.close();",1000)
//-->
</script>

如何在父页面上创建一个函数来刷新div id =“target”并从iFrame中调用它。现在,整个父页面都会刷新。

2 个答案:

答案 0 :(得分:3)

将第二个参数传递给jQuery,并使用所需的范围

window.setTimeout('window.top.location.href = "/page.asp"; ',999);替换为:

window.setTimeOut(function(){
    $("#target", window.parent).load("/page.asp #target");
},999);

答案 1 :(得分:0)

您可以通过从iframe中包含的页面调用父页面中的javascript函数来实现此目的。

window.parent.myFunctionInParent('my param');

您可以在How to refresh parent page partially from page within iframe中逐步学习该技术。

希望这有帮助。