如果我控制两个页面(PageA和PageB)的内容,其中一个我要加载到iframe(PageB),是否有一些我可以在PageB上输入的javascript将从父级中提取样式(PageA) )?我需要两个样式选项,一个用于在iframe中加载PageB时,另一个用于当PageB自己加载时。
答案 0 :(得分: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中。
答案 1 :(得分:0)
我会这样做:检查您的页面是否加载到框架中并根据此选择样式而不是尝试从父页面中提取样式。
您可以通过以下类型的代码检测您是否在框架中:
if ( top.location.href !== window.location.href ) { /* In frame */} else { /* Not in frame */ }