2

如果 url 与 iframe 标签中设置的不同,有什么方法可以拒绝访问页面?

例如。:

index.php我在目录中创建了一个名为的页面abc

我将此网址编码http://www.mysite.com/client/client.php为在页面 index.php 的 iframe 标记中打开:

<iframe src="http://www.mysite.com/client/client.php"> </iframe>

用户将看到该页面通常会点击地址http://www.mysite.com/abc,但如果它将其视图更改为另一个链接(在其内容中可用的菜单中),例如:到联系人页面。它应该从 iframe 中取出,并且地址栏应该http://www.mysite.com/contactpage不再存在http://www.mysite.com/abc

我尝试过使用该IF ELSE语句,但是它$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']给出了地址栏中的 url,在这种情况下,由于 iframe 不会改变。如何检查 iframe 内的当前 url 访问?

4

1 回答 1

0

您需要为target="_top"client.php 中的每个链接添加。


如果你不能手动完成,你可以用 JavaScript 解决它(PHP 在这里没有帮助)。在 index.php 中放入以下代码(使用 jQuery):

<iframe id="client_frame" src="http://www.mysite.com/client/client.php"> </iframe>
<script type="text/javascript">
  $("#client_frame").on('load', function() {
    $(this.document).find('a').each(function() {
      if (!$(this).attr('target')) $(this).attr('target', '_top');
    });
  });
</script>

它循环遍历<a>iframe 的 DOM 文档的所有元素,并target="_top"在元素没有目标属性时添加。

请注意,这仅适用于嵌入 iframe 与父文档具有相同域的情况。

于 2013-05-06T20:25:21.560 回答