2011-03-18 66 views
8

我有我的登录页面在iframe中,并希望从iframe中使用ajax和jquery重新加载父窗口而不刷新,但我得到像这样的错误从内部框架中重新加载父窗口

 
(this[0].ownerDocument || this[0]).createDocumentFragment is not a function
请帮忙!

回答

33

我可以重新加载页面使用JavaScript

parent.location.reload(); 

然后我开了扳机打开目标的iframe

$("#log-inout").trigger("click"); 

,我需要这样的系统的特殊条件实现这一目标。这可能有助于其他人在类似的条件。

+5

仅当您从同一位置加载两个窗口时,此功能才有效。否则,浏览器拒绝重新加载,因为它违反了“同源策略”。这同样适用于Bert-Jan的parent.location.href答案。 – Pavel 2013-11-07 15:11:22

3

不要打扰!如果你使用ajax,为什么要使用iframe呢?

只是用

$(“要在这里加载内容”)加载登录负载(“你IFRAME SRC的这里”)。

//load via ajax 
$("div").load("login.php"); 

更简单,更优雅。

+0

我其实是想刷新用户登录后的内容(parentwindow),而IFRAME(登录)仍然在 – 2011-03-18 12:00:02

+0

有趣的想法, 值得注意! – Andrew 2015-08-19 18:49:05

17
parent.location.href=parent.location.href 

给出比

parent.location.reload() 

后者力量完全重装一个平滑的结果,而第一似乎几乎像阿贾克斯更有效地更新。

+0

hhm ...谢谢! – 2013-05-08 07:52:41

+5

如果父域以这种方式与iframe域不同,就不能这样做。 “协议,域和端口必须匹配。” – 2014-10-14 04:43:07

0

您可以使用:

window.parent.location.href = "Create?Param=value"; 

或者:

window.parent.location.href = "http://www.stackoverflow.com"; 
相关问题