【问题标题】:Iframe Question框架问题
【发布时间】:2011-10-21 07:48:32
【问题描述】:

如果我控制两个页面(PageA 和 PageB)的内容,其中一个我想加载到 iframe (PageB) 中,是否可以在 PageB 上输入一些 javascript 来从父级 (PageA) 中提取样式)?我需要两种样式选项,一种用于在 iframe 中加载 PageB 时,另一种用于当 PageB 自行加载时。

【问题讨论】:

标签: php javascript css iframe


【解决方案1】:

我可以看到的一个解决方案是从外部文件加载这两个文件的样式,并将 IFrame 的 src 属性设置为包含一个 GET 变量(本示例的其余部分假定文件名为index2.php):

<iframe src="index2.php?iframe=Y" ... />

从那里到 index2.php 的顶部应该是这样的:

<?php

     if ($_GET["iframe"] == "Y") {
         echo "<link href='global.css' type='stylesheet' />";
     } else {
         echo "<link href='specific.css' type='stylesheet' />";
     }

....

?>

虽然 Kris 的解决方案也是有效的,但我不会也永远不会依赖 Javascript 在所有浏览器中以相同的方式工作,无论它是否经过测试。至少通过这种方式,您知道文件正在加载到 IFrame 中。

【讨论】:

    【解决方案2】:

    我会这样做:检查您的页面是否加载到框架中,并根据此选择您的样式,而不是尝试从父页面中提取样式。

    您可以通过这种类型的代码检测您是否在框架中:

    if ( top.location.href !== window.location.href ) { /* In frame */} else { /* Not in frame */ }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-18
      相关资源
      最近更新 更多