jQuery:如何在父对象上隐藏帧?

jQuery:如何在父对象上隐藏帧?,jquery,hide,parent,frame,Jquery,Hide,Parent,Frame,我的主页在框架集中包含多个框架。 其中一个框架是一个带有按钮的工具栏,我希望能够按下该工具栏上的按钮,它将转到主页上并隐藏其中一个框架 我在工具栏框架内尝试了以下操作,但无效 $(document).parent.$("#other_frame").hide("slow"); 我对jQuery真的很陌生,在搜索完web之后,我几乎迷路了 谢谢你的帮助 编辑:我的完整主页 <frameset frameborder="0" rows="70, *"> <frame na

我的主页在框架集中包含多个框架。 其中一个框架是一个带有按钮的工具栏,我希望能够按下该工具栏上的按钮,它将转到主页上并隐藏其中一个框架

我在工具栏框架内尝试了以下操作,但无效

$(document).parent.$("#other_frame").hide("slow");
我对jQuery真的很陌生,在搜索完web之后,我几乎迷路了

谢谢你的帮助

编辑:我的完整主页

<frameset frameborder="0"  rows="70, *">
   <frame name="toolbar" src="toolbar.html" marginwidth="8px" marginheight="8px" />
   <frameset id="lineNumFrameset" frameborder="0" cols="50, *">
      <frameset rows="*, 16">
      <frame id="other_frame" name="lineNum" src="lineNum.html" marginwidth="8px" marginheight="8px" align="top" />
      </frameset>

      <frame name="editor" src="editor.html" marginwidth="8px" marginheight="8px" />
   </frameset>
</frameset>

就我的理解而言,您需要执行像在div上隐藏这样的操作。基本上,无论您试图影响什么,都需要响应css display属性。如果必须使用框架,我强烈建议您改用div,然后您需要编写一些jQuery来实际从DOM中删除框架,而不仅仅是试图隐藏它

$(document).parent.$("#other_frame").hide("slow");
啊。这里有几个问题。首先,调用函数是
parent()
。但是,jQuery不能使用
parent()
从文档跳出到父文档。要向上导航帧,您需要
窗口。父项
属性:

window.parent.$('#other_frame').hide('slow');
但要使其工作,您需要在父文档中加载jQuery的副本,以便调用其
$
。(从另一个文档的
$
副本为一个文档编写脚本通常不起作用;jQuery不是专门为跨框架脚本编写的。)

它不起作用的最后一个原因是您不能真正为框架集页面编写脚本/设置样式。浏览器可能会忽略这些特殊页面中的脚本,许多CSS属性在框架上无法工作(包括jQuery的
hide()
使用的
display:none


尝试使用
iframe
s而不是
frame
s来获得更容易编写脚本的页面。(让框架样式
layout:fixed
的东西在IE6中工作将是一件痛苦的事情。)或者,如果你能管理它,在一个文档中完成所有工作将更容易管理。跨框架脚本有许多微妙而恼人的陷阱。

我这样做,没有jquery,我在主框架中有一个调用go()函数的“链接”。 go函数展开或折叠“FrameSetMain”的第一帧。 我已经在ie8和Firefox3.6上进行了测试

var oggFS = parent.document.getElementById("FrameSetMain");
var startingWidth = oggFS.cols
var w = 0;
function collapse(min) { 
    s = oggFS.cols.split(",");
    w = parseInt(parseFloat(s[0]) / 2);
    oggFS.cols = w + ",8,*";
    if (w>min) { setTimeout("collapse("+min+")",50); } else {
        oggFS.cols = min + ",8,*";
        document.getElementById("link").title = "Show menu";
    }
}
function expand(max) { 
    s = oggFS.cols.split(",");
    if (s[0]==0) s[0]=5;
    w = parseInt(parseFloat(s[0]) * 2);
    oggFS.cols = w + ",8,*";
    if (w<max) { setTimeout("expand("+max+")",50); } else {
        oggFS.cols = max + ",8,*";
        document.getElementById("link").title = "Hide menu";
    }
}
function go(){ if (oggFS.cols != "0,8,*") { collapse(0); } else { s = startingWidth.split(","); expand(s[0]); } }
var oggFS=parent.document.getElementById(“FrameSetMain”);
var startingWidth=oggFS.cols
var w=0;
函数折叠(min){
s=oggFS.cols.split(“,”);
w=parseInt(parseFloat(s[0])/2);
oggFS.cols=w+”,8,*”;
如果(w>min){setTimeout(“collapse(+min+”),50);}else{
oggFS.cols=min+”,8,*”;
document.getElementById(“link”).title=“显示菜单”;
}
}
函数展开(max){
s=oggFS.cols.split(“,”);
如果(s[0]==0)s[0]=5;
w=parseInt(parseFloat(s[0])*2);
oggFS.cols=w+”,8,*”;

如果(w您可以使用以下内容修改框架集:

您也可以对cols执行此操作。

尝试以下操作:

if(window.parent.document.getElementById("myFrameset").cols!="40px,*"){
                $('#left-title-txt').hide();
                window.parent.document.getElementById("myFrameset").cols="40px,*";
                $(this).css('background-image','url(img/openleft.png)');
            }else{
                $('#left-title-txt').show();
                window.parent.document.getElementById("myFrameset").cols="20%,80%";
                $(this).css('background-image','url(img/hideleft.png)');
            }

我认为这是真的,你可以隐藏一个iframe,但不能在一个框架集中隐藏一个框架(因为它们没有通过css显示或设置样式)。我在文章中添加了主页代码。我可以通过id=“other\u frame”隐藏框架,只需更改框架集的大小……但我想使用jQuery创建一个很酷的动画(带隐藏)效果。你尝试过:$(“#other_frame”).hide();它是否返回任何javascript错误或只是不起作用?
if(window.parent.document.getElementById("myFrameset").cols!="40px,*"){
                $('#left-title-txt').hide();
                window.parent.document.getElementById("myFrameset").cols="40px,*";
                $(this).css('background-image','url(img/openleft.png)');
            }else{
                $('#left-title-txt').show();
                window.parent.document.getElementById("myFrameset").cols="20%,80%";
                $(this).css('background-image','url(img/hideleft.png)');
            }