新的php页面被迫从iframe进入整个窗口

时间:2015-03-30 21:14:36

标签: javascript php iframe

我正在从iframe内部调用一个新网址,并希望新网址放弃iframe(如果需要可以关闭/销毁它)并显示为全屏。复杂的是我无法控制对新php文件的调用,因为它是由信用卡支付服务器作为重定向完成的。

为了clrify,我有一个名为order3.php的页面whihc在其中有一个iframe信用卡动作发生。最后,我告诉信用卡服务器我们现在要转到order4.php(但是我不能告诉它任何其他的东西,比如带有这条指令的脚本,只是页面名称)。因为有人会支付order4.php现在出现在order3.php中的ifrmae中。我想要的是order4.php在加载时声明独立性并坚持它是全屏的。

我不是很懒,而且我看起来很好看,但是我无法理解提供单行javascript的帖子,并说这会有效,因为我不知道放在哪里!

我试过这个:

<script>document.location.replace('order4.php');</script>

在order4.php的标题中,但不用说它不起作用。它确实会导致iframe消失,这是一个开始,但是你得到一个白色区域,其中iframe是,而order3.php仍在显示。实际上,浏览器似乎陷入了循环中。

总而言之,我可以对order4.php做些什么,这样当它显示时就会忘记过去而只是在整个屏幕上显示其他任何人所说的。

请简明扼要地告诉我在哪里放置您提供的任何代码片段,请记住我无法控制对order4.php的调用语法。我不确定,但我想你可能需要知道我的标题中有这个:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 

谢谢你的到来。

1 个答案:

答案 0 :(得分:0)

[解决]

不确定这是不是因为它很棘手或仅仅是蔑视,但这里是任何想要它的人的解决方案。

所以Order3.php有iframe,是起点。第三方服务器被指示调用一个中间页面来处理iFrame的关闭和重定向到order4.php,而不是直接调用order4。因此,不要直接进入最终目标,而是通过iFrame中的控制URL,调用父级中的函数(原始order3.php)来关闭iframe并将整个窗口重定向到最终目标order4。

1st声明你要在原始php,order3的头部调用的函数。我的标题中包含一个.js文件,所以下面的代码就在那里,但是如果要将它放在order3的HTML头中,则需要将代码括在脚本标记中。考虑一下,你可能会在没有关闭iFrame并且只是进行替换的情况下离开,但这似乎有效并且它消除了任何疑问。

function breaktoorder4() {
   window.frames[0].close();
   location.replace("https://www.website.co.uk/order4.php");
}

接下来创建将在iFrame中调用的中间php(或html)。我把它叫做breakframe.php。这是整个页面:

<html>
<head></head>
<body onload="parent.breaktoorder4();">
</body>
</html>

现在告诉第三方指向breakframe.php而不是order4.php而嘿presto,你最终应该在整个窗口显示order4。

我没有在所有浏览器中测试过这个,但它只使用非常简单的功能,所以我不能认为应该有任何问题。希望这会有所帮助。