假设我在主页上有一个链接,在下一页上有一个 iFrame。
现在我需要在主页上创建该链接以将 URL 传递给下一页上的 iFrame(单击时),以便 iFrame 可以加载该 URL。
我将如何在不使用任何 JS 的情况下解决这个问题?
我知道如何在单个页面上执行此操作,我在其中单击链接并仅定位 iFrame。但是在两个不同的页面上执行此操作(传递 URL)对我来说太高了。
提前致谢!
假设我在主页上有一个链接,在下一页上有一个 iFrame。
现在我需要在主页上创建该链接以将 URL 传递给下一页上的 iFrame(单击时),以便 iFrame 可以加载该 URL。
我将如何在不使用任何 JS 的情况下解决这个问题?
我知道如何在单个页面上执行此操作,我在其中单击链接并仅定位 iFrame。但是在两个不同的页面上执行此操作(传递 URL)对我来说太高了。
提前致谢!
粗略地说:
主页:
<a href="nextpage.php?link=http://example.com">nextpage</a>
下一页.php:
<iframe src="<?php echo $_GET['link'];?>"></iframe>
你基本上有两种方法可以去:
只需创建一个将链接作为查询字符串的链接
<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']; ?>">
编辑:我不明白带有 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 源。
您可以通过 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 传递给它。
再见