我有一个网站,它使用 JavaScript 中的 top 在面板中显示书店。现在我想使用框架将此网站添加到另一个网站中。但是当我在 frame 的 src 中修复 URL 时,它会改变页面或图像的层次结构,并且不会显示书店。
2 回答
所以“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 内被框住。这应该允许你根据需要来构建你的(框架)页面,而不会弄乱最内层框架的逻辑。
希望有帮助。
我不确定我是否真的理解你的问题。(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 变量。只有微软即知道为什么!
希望有帮助!