【发布时间】:2011-10-21 07:48:32
【问题描述】:
如果我控制两个页面(PageA 和 PageB)的内容,其中一个我想加载到 iframe (PageB) 中,是否可以在 PageB 上输入一些 javascript 来从父级 (PageA) 中提取样式)?我需要两种样式选项,一种用于在 iframe 中加载 PageB 时,另一种用于当 PageB 自行加载时。
【问题讨论】:
标签: php javascript css iframe
如果我控制两个页面(PageA 和 PageB)的内容,其中一个我想加载到 iframe (PageB) 中,是否可以在 PageB 上输入一些 javascript 来从父级 (PageA) 中提取样式)?我需要两种样式选项,一种用于在 iframe 中加载 PageB 时,另一种用于当 PageB 自行加载时。
【问题讨论】:
标签: php javascript css iframe
我可以看到的一个解决方案是从外部文件加载这两个文件的样式,并将 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 中。
【讨论】:
我会这样做:检查您的页面是否加载到框架中,并根据此选择您的样式,而不是尝试从父页面中提取样式。
您可以通过这种类型的代码检测您是否在框架中:
if ( top.location.href !== window.location.href ) { /* In frame */} else { /* Not in frame */ }
【讨论】: