1

我知道这是非常基本的,我以前从未有过需要,但我希望 PHP 重定向能够突破任何 iframe(如果适用)。

这可能吗?

我知道 PHP 会向浏览器发送标头,所以应该是这样,但我在任何地方都看不到。

因此,如果我使用此代码,那么它总是会更改父级,而不仅仅是任何 iframe 窗口:

<?php
header('Location: http://domain.com/');
?>

当然这可行,但我需要从 PHP 完成:

<a href="page.php" target="_parent">

我正在使用 Symfony2,所以也需要让它在其中工作。

没有 JavaScript。仅限 PHP(如果可能)。

4

2 回答 2

1

你不能在 PHP 中做到这一点——如果浏览器试图在框架中加载页面,那么发送Location标题也会简单地在框架中加载新页面。

如果您试图阻止其他人将您的网站放入框架中,则必须使用 JavaScript 来检测它并进行重定向,否则target="_top"是正确的方法。

于 2013-07-19T00:05:57.637 回答
0

当您想重新加载 iframe 时,从 Symfony 2 中的控制器返回一些变量(例如 reloadMyIframe)。然后在视图中(可能是树枝),放上这样的东西

{% if reloadMyIframe == true %}

// Add somethin like this <script...>window.parent.location.href = "http://jourTaret.dmn"

{% endif %}

如果您在 Symfony 中的视图是在 PHP 中的,您可以使用相同的逻辑,只需使用 php if 语句键入它。

正如人们已经说过的那样,没有办法仅使用 PHP 或 Symfony 控制器来完成您想要完成的任务。

于 2013-07-19T08:13:27.527 回答