将iframe中的页面加载到主窗口中

时间:2013-01-18 16:32:43

标签: jquery asp.net-mvc-3

我有一个带有页面的MVC网站(让我们称之为x),其中有一个iframe(我们称之为x2)。当我与iframe(x2)交互时,如果我最终在一个特定的网址上(让我们称之为y),我希望该网址(y)不要在iframe(x2)中打开,而是在浏览器中打开作为主页。我希望网址也改为y。我需要什么JQuery魔法?

修改

我的错,我没有很好地解释自己。我没有使用我点击的链接转到该页面,但外部网站会从iframe重定向到该页面。

3 个答案:

答案 0 :(得分:1)

不需要jQuery,只需在target上添加<a>

<a href="@Url.Action("Action", "Controller", { property = 'foo' })" target="_parent">Link</a>

答案 1 :(得分:1)

你可以通过window.postmessage来研究这个问题。我做了类似的事。我的一个页面有一个iframe。点击某个链接,而不是更改iframe,会更改父页面。

http://davidwalsh.name/window-postmessage有一篇关于如何使用它的精彩文章。基本上,您将在第x页上设置一个监听器。当您加载页面y时,让页面y将消息发布到父窗口。 X将听取该消息并采取相应行动。

编辑:添加侦听器以检查iFrame的onLoad事件。每次查看iFrame的URL。如果该URL与页面Y匹配,则强制页面X更改URL。

答案 2 :(得分:1)

我相信您可以通过在URL末尾添加一个#标签加上一个循环来检查目标视野中的标签。更改主题标签不会重新加载URL并允许目标框架读取它。它是hacky但它​​应该工作。