iframes修改

时间:2009-10-08 13:47:39

标签: javascript iframe runtimemodification

我有一个网站,使用JavaScript顶部显示小组中的书店。现在我想使用框架将此网站添加到另一个网站。但是,当我在框架的src中修复URL时,它会更改页面或图像的层次结构,并且不会显示书店。

2 个答案:

答案 0 :(得分:0)

所以“top”实际上是“window.top”(但是因为窗口是全局范围的一部分,所以你可以通过“top”来逃避)。如果您阅读了window.top的内容,您会发现它返回“对窗口层次结构中最顶层窗口的引用”。换句话说,如果你有:

Frame Page B
  Famed Page C

你从任何一个调用window.top,你将得到相同的窗口对象(页面B的那个)。

但是,如果您改为:

Frame Page A
  Frame Page B
    Famed Page C

window.top将始终返回页面A的窗口对象,无论您是从A,B还是C调用它。

我认为您想要使用的是(虽然很难知道没有看到您的网站)是window.parent(即“父”,如果您不想打扰“窗口”。)。此属性返回相关窗口的直接父级。如果你从C调用它,它将始终返回B的窗口,即使B在A内框架。这应该允许你按照你想要的方式构建你的(框架)页面,而不会弄乱最里面的框架的逻辑。

希望有所帮助。

答案 1 :(得分:0)

我不确定我是否真的了解你的问题。 (○;

这应该是您网站默认框架集的一种简单形式。

<html>
    <frameset rows="50,50">
        <frame name="bookframe" src="bookframe.html" />
        <frame src="default.html" />
    </frameset>
</html>

这应该是带有javascript代码的default.html来控制bookframe面板。

<html>
    <body>
        <script>
            parent.frames["bookframe"].location.href  = "uri";
        </script>
    </body>
</html>

正如你所看到的,我正在使用框架的名称而不是顶部。

使用iframe将我的第一个商家信息中的framset包含到新页面中,并且所有内容仍然有效。

<html>
    <body>
        <iframe src="frameset.html" />
    </body>
</html>

如果您的网站从一开始只使用iframe而不是框架集,那么它仍然使用名称而不是顶部。

提示: 名称应该是唯一的。应该没有同名的javascript变量。只有微软知道为什么!

希望有所帮助!