通过两个页面将URL传递给iFrame

时间:2012-10-19 07:59:00

标签: php javascript url iframe target

假设我在主页上有链接, 以及下页的iFrame。

现在我需要在主页上建立该链接 将URL传递到下一页的iFrame(点击), 所以iFrame可以加载该URL。

如果不使用任何JS,我将如何处理?

我知道如何在一个页面上执行此操作,我点击一个链接,然后定位iFrame。 但是在两个不同的页面(通过URL)上这样做对我来说太高了。

提前致谢!

4 个答案:

答案 0 :(得分:3)

粗略地说:

主页:

<a href="nextpage.php?link=http://example.com">nextpage</a>

Nextpage.php:

<iframe src="<?php echo $_GET['link'];?>"></iframe>

答案 1 :(得分:2)

你基本上有两种方法可以去:

只需创建一个链接,其链接为查询字符串

<a href="page_2.php?link=mylinkusediniframe.com">Cick</a>

然后检查PHP文件中的链接:

$link = $_GET['link'];
if (! preg_match("^(?:https?://)?(?:[a-z0-9-]+\.)*((?:[a-z0-9-]+\.)[a-z]+)", $link) ) {
    $link = null;
}

最后打印出来:

<iframe src="<?php print $link; ?>">

在我发现它的地方很好地解释了正则表达式:https://stackoverflow.com/a/10435670/1456376


另一种选择是:

将网址存储在第一页的SESSION中

优点是,用户无法操纵显示的URL(只需更改地址栏中的URL,就可以使用第一个解决方案)。

在第一个文件中执行:

$_SESSSION['link'] = 'http://mylink.com';

在第二个输出它:

<iframe src="<?php print $_SESSION['link']; ?>">

答案 2 :(得分:1)

编辑: 我不明白iframe的窗口是否已经打开。如果它已经打开,那么你将需要我的方法,如果没有阅读Jevgeni Bogatyrjov方法,因为这是正确的。 您将需要查看Javascript,因为PHP无法帮助您完成该任务。 首先,您需要使用javascript打开新窗口,如下所示:

new_window = window.open("page2.php", "window2", "height=120");

然后,您可以将javascript函数从1个窗口调用到另一个窗口,如

new_window.test();

因此,如果新页面有iframe,则使用javascript可以使用类似

的函数更改iframe源代码
<a href="#" onlclick="new_window.test('newpage.html');">Link</a>

在另一页上,您将使用url参数创建一个名为test的函数,然后使用新参数更改iframes源。

答案 3 :(得分:1)

您可以通过Get方法将地址从主页传递给iframe。 这是包含iframe的页面:http://www.page-with-iframe.php 这是您要传递的网址:http://www.url-for-iframe.php

您可以在主页中添加一个链接,其中“url-for-iframe”使用函数base64_encode编码。链接将是这样的:

http://www.page-with-iframe.php?link=2jhGe2R6Wd5nJcrJgLgFrS7dCWiloJKf

您可以在包含iframe的页面中使用base64_decode,并将获取的网址传递给它。

再见