0

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

4

2 回答 2

0

所以“top”实际上是“window.top”(但由于 window 是全局范围的一部分,您可以只使用“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 (尽管如果不查看您的网站就很难知道)是 window.parent (即,如果您不想打扰“window.”,则为“parent”)。此属性返回相关窗口的直接父级。如果你从 C 调用它,它总是会返回 B 的窗口,即使 B 在 A 内被框住。这应该允许你根据需要来构建你的(框架)页面,而不会弄乱最内层框架的逻辑。

希望有帮助。

于 2009-10-08T18:53:47.687 回答
0

我不确定我是否真的理解你的问题。(o;

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

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

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

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

如您所见,我使用框架的名称而不是顶部。

使用 iframe 将我的第一个列表中的框架集包含到新页面中,并且一切仍在工作。

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

如果您的网站从一开始就只使用 iframe 而不是框架集,那么它仍然可以通过使用名称而不是顶部来工作。

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

希望有帮助!

于 2009-10-09T06:58:58.880 回答