我知道这是非常基本的,我以前从未有过需要,但我希望PHP重定向能够打破任何iframe(如果适用)。
这可能吗?
我知道PHP会向浏览器发送一个标题,所以它应该是,但我无法在任何地方看到它。
因此,如果我使用此代码,那么它总是更改父代,而不仅仅是任何iframe窗口:
<?php
header('Location: http://domain.com/');
?>
当然这很有效,但我需要从PHP完成它:
<a href="page.php" target="_parent">
我正在使用Symfony2,所以也需要让它在那里工作。
没有JavaScript。仅限PHP(如果可能)。
答案 0 :(得分:1)
你不能用PHP做 - 如果浏览器试图在一个框架中加载页面,那么发送Location
标题也只是在框架中加载新页面。
如果您试图阻止其他人将您的网站放在一个框架中,您必须使用JavaScript来检测它并进行重定向,否则target="_top"
是正确的方法。
答案 1 :(得分:0)
从Symfony 2中的控制器返回一些变量(例如reloadMyIframe)然后,当你想重新加载你的iframe时。然后在视图(可能是树枝),放这样的东西
{% if reloadMyIframe == true %}
// Add somethin like this <script...>window.parent.location.href = "http://jourTaret.dmn"
{% endif %}
如果您在Symfony中的视图是在PHP中,则可以使用相同的逻辑,只需使用php if语句键入它。
正如大家们已经说过的那样,没有办法用PHP或者Symfony控制器完成你想要的工作。