我有一个网站,在JavaScript中使用top在面板中显示书店。现在我想使用框架将这个网站添加到另一个网站中。但是,当我在框架的src中修复URL时,它改变了页面或图像的层次结构,书店不会显示。
发布于 2009-10-08 18:53:48
所以"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无论是从A、B还是C调用,window.top都将始终返回页面A的窗口对象。
我认为你想要用的是window.parent (也就是说,如果不看你的网站就很难知道)。"parent“,如果你不想为”window“而烦恼的话。此属性返回相关窗口的直接父级。如果你从C调用它,它将总是返回B的窗口,即使B被框在A中。这应该允许你随心所欲地框住你的(框)页面,而不会弄乱最里面的框的逻辑。
希望这能有所帮助。
发布于 2009-10-09 06:58:59
我不确定我是否真的理解你的问题。(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>如您所见,我使用的是框架的名称,而不是top。
<html>
<body>
<iframe src="frameset.html" />
</body>
</html>如果您的网站从一开始就只使用iframe而不是框架集,它仍然可以通过使用名称而不是top来工作。
提示:名称应该是唯一的。不应该有同名的javascript变量。只有微软ie知道为什么!
希望这能有所帮助!
https://stackoverflow.com/questions/1537907
复制相似问题