2013-05-09 79 views
0

我有一个页面说,正在iframe中的其他网站中使用display.aspx。在display.aspx页面中,我有一个打开Facebook弹出窗口进行分享的按钮。分享成功后,我会在我的网站的一个页面中回复FBResponse.aspx。从FBResponse.aspx,我想重新加载display.aspx页面。重新加载从子弹出窗口的父级iframe

我已经试过
1) window.opener.history.go(0);
2) window.opener.location.reload(false);
3) opener.location.reload(false);

但没有工作,这些对我来说。

此外,我在display.aspx页面中做了一个函数,在那个函数中我写了代码来重新加载页面。我试图从FBResponse.aspx调用该函数,但在Chrome中出现错误请求访问的帧的协议为'https',正在访问的帧的协议为'http'。协议必须匹配,并在FF中出现错误权限被拒绝访问IFRAME中的属性。其实我的网站正在https上工作,因为正在使用我的页面display.aspx的网站可能使用http协议。

任何解决方案?

谢谢
普里亚

回答

0

嘿尝试这一个。

<form onsubmit="window.top.location.href = 'http://www.wesite.com/test.html';"> 

注意iframe和top必须在同一个域上,并且不要打破相同的源策略。

希望它能帮助你。

+0

Thanks.I尝试过,但它不工作。 – Priya 2013-05-09 10:53:12

+1

试试这个'parent.location.reload();'也参考这些链接[Link1](http://stackoverflow.com/questions/5351342/reload-parent-window-from-within-an-iframe)[Link2] (http://prajapatinilesh.wordpress.com/2008/03/28/refresh-main-parent-window-of-iframe/)。希望它可以适合你。享受编码。 – 2013-05-09 11:04:45

0

除非页面和iframe具有相同的域(并且在这种情况下,您可以使协议匹配),否则不能这样做。同源策略可以是biatch。

+0

Iframe(display.aspx)中正在使用的页面和我想从中重新加载display.aspx的页面(fbresponse.aspx)都具有相同的域。但是display.aspx在我的网站中使用。会影响吗? – Priya 2013-05-10 05:08:56

+0

如果他们在同一个域中,并且您使用相同的域来访问它们,那么您应该能够做到您所需要的。理论上至少:)。 – zozo 2013-05-10 06:57:24