1

假设我在主页上有一个链接,在下一页上有一个 iFrame。

现在我需要在主页上创建该链接以将 URL 传递给下一页上的 iFrame(单击时),以便 iFrame 可以加载该 URL。

我将如何在不使用任何 JS 的情况下解决这个问题?

我知道如何在单个页面上执行此操作,我在其中单击链接并仅定位 iFrame。但是在两个不同的页面上执行此操作(传递 URL)对我来说太高了。

提前致谢!

4

4 回答 4

3

粗略地说:

主页:

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

下一页.php:

<iframe src="<?php echo $_GET['link'];?>"></iframe>
于 2012-10-19T08:06:57.227 回答
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


另一种选择是:

将 URL 存储在第一页的 SESSION 中

优点是,用户不能操纵显示的 URL(就像他可以通过简单地更改地址栏中的 URL 来使用第一个解决方案一样)。

在第一个文件中执行:

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

在第二个简单地输出它:

<iframe src="<?php print $_SESSION['link']; ?>">
于 2012-10-19T08:15:29.830 回答
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 的函数,然后使用新参数更改 iframe 源。

于 2012-10-19T08:03:49.940 回答
1

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

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

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

您可以在带有 iframe 的页面中使用 base64_decode 并将获得的 url 传递给它。

再见

于 2012-10-19T08:08:46.680 回答