和这个问题是一样的:程序结构:左边框架(left)+右边框架(main)目的:左边框架是菜单,点击左边菜单在main框架中响应响应页面,同时在main框架中产生同时定位一个层ps:由于菜单太多,现在希望在框架中做js函数实现,或者是在左框架点击菜单的时候同时响应并在main框架中产生一个层,并定位!    罗嗦一下,不是<a href="ohref(url)" tager="main">菜单</a>
    是在main框架中打开指定的url的时候,同时自动在指定页面自动生成一个悬浮层

解决方案 »

  1.   

    如果真是菜单太多,这样一个浮动框似乎不能解决你这问题,对菜单进行分类或者对当然用不到的菜单进行隐藏,我想楼主也有看到windows的菜单,看看他的资源管理器的左边--当然这是一个树形,各目录相关联--有明显的结构关系,这样你也可以从相互间的关系入手,如查第一次隐藏还很长,刚可进行多节隐藏,直到你认可。--//纯属个人想法--
      

  2.   

    lantersen(蓝水仁--All will be well!~)首先谢谢你的回复,正如你说的,在我程序的左框架是一个树型菜单,层次也很清楚,现在问题就是:左边框架隐藏和显示的问题,最容易想到的就是框架的嵌套,有另外一个<frame>在控制左框架的显示和隐藏(当然一般马上想到的就是,中间的分隔条),这种方法已经做过,是可以的!由于一些原因不能这样做。目的:在右框架中出现可控制左框架的图标(或者当左框架隐藏后 也可以)限制条件:只能在主框架(main)或者是left框架的树型菜单(LeftMenu页面)中去产生右框架所需要的控制图标PS:一般的做法是在右框架需要显示的页面包含js,画层,但是现在不能手动去做!
      

  3.   

    今天老板说框架多了不好,现在只能在left左框架中做了,也就是LeftMenu页面做,我能想到的是当点击菜单项的时候,在右框架打开指定页面的同时动态产生一个浮动层并定位!ps:个人想法,没实现的思路
      

  4.   

    你的意思是不是说要在右框架产生一个层,而且无论这个层在页面上的位置不发生变化。
    如果是这样的话,直接用css里边的position:fixed就可以在firefox和opera中实现其位置的固定,而对于ie的话,需要在body的onscroll事件时控制这个层的位置,一般用window.body.scrollTop来获取当前滚动条离页面顶端的位置,所以要固定这个层的位置就可以通过这个属性来实现了
      

  5.   

    你说的是对的!左框架怎么产生一个层在右框架中呢?刚刚有位大哥告诉我这么做,可是不行啊function cmdOverDiv( oUrl, oTarget ) {
      parent.frames[oTarget].location = oUrl;
      var maindocument = parent.frames[oTarget].document;
      var div = maindocument.createElement("div");
              div.style.position = "absolute"; 
      div.style.width = "30px"; 
      div.style.height = "30px";
      div.style.z-index = "10"; 
      div.style.left = "180px";
      div.style.top = "400px";
          maindocument.body.appendChild(div);
          
    }
      

  6.   

    如果要实现跨框架的“层”:
    1:前几天有给朋友试过,window.createPopup( [vArgs]),使用如下例,对创建的窗口进行相关定位;
    <HTML>
    <HEAD>
    <TITLE>Popup Example</TITLE>
    <SCRIPT LANGUAGE="JScript">
    var oPopup = window.createPopup();
    function ButtonClick()
    {
    var oPopBody = oPopup.document.body;
    oPopBody.style.backgroundColor = "lightyellow";
    oPopBody.style.border = "solid black 1px";
    oPopBody.innerHTML = "Click outside <B>popup</B> to close.";
    oPopup.show(100, 100, 180, 25, document.body);
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <BUTTON onclick="ButtonClick()">Click Me!</BUTTON>
    </BODY>
    </HTML>
    2:或者直接用模拟框架,或者一部分用DIV,一部分用<iframe>
    再用样式进行相关定位与层的控制;
      

  7.   

    谢谢 lantersen(蓝水仁--All will be well!~)  小弟不胜感激是不是小弟表述有问题啊!我想实现的是,就是在LeftMenu的  cmdOverDiv( oUrl, oTarget ) 在main框架中动态生成一个层,下面是小弟写的,不知道出错在哪里(前面的粘错了)function cmdOverDiv( oUrl, oTarget ) {
      parent.frames[oTarget].location = oUrl;
      var maindocument = parent.frames[oTarget].document;
          newElement.id = 'newDiv';
          newElement.className = 'newDivClass';
          newElement.setAttribute('name ','newDivName');
          newElement.style.width = '60px';
          newElement.style.height = '60px';
          newElement.style.margin = '0 auto';
          newElement.style.border = '1px solid #DDD';
          newElement.appendChild(newText);
      div.style.width = "30px";
      div.style.height = "30px";
      div.style.z-index = "10";
      div.style.left = "180px";
      div.style.top = "400px";*/
     
          maindocument.body.appendChild(newElement);}
      

  8.   

    function cmdOverDiv( oUrl, oTarget ) {
      parent.frames[oTarget].location = oUrl;
      var maindocument = parent.frames[oTarget].document;
          newElement.id = 'newDiv';
          newElement.className = 'newDivClass';
          newElement.setAttribute('name ','newDivName');
          newElement.style.width = '60px';
          newElement.style.height = '60px';
          newElement.style.margin = '0 auto';
          newElement.style.border = '1px solid #DDD';
          newElement.appendChild(newText);
          maindocument.body.appendChild(newElement);}
      

  9.   

    第一:newElement是否存在?
    第二:z-index,DHTML写法为zIndex。
    第三:*/这里多写了一些function cmdOverDiv( oUrl, oTarget ) {
      parent.frames[oTarget].location = oUrl;
      var maindocument = parent.frames[oTarget].document;
          newElement.id = 'newDiv';
          newElement.className = 'newDivClass';
          newElement.setAttribute('name ','newDivName');
          newElement.style.width = '60px';
          newElement.style.height = '60px';
          newElement.style.margin = '0 auto';
          newElement.style.border = '1px solid #DDD';
          newElement.appendChild(newText);
      div.style.width = "30px";
      div.style.height = "30px";
      div.style.zIndex = "10";
      div.style.left = "180px";
      div.style.top = "400px";
     
          maindocument.body.appendChild(newElement);}
      

  10.   

    /**
    是不是小弟表述有问题啊!
    我想实现的是,就是在LeftMenu的 cmdOverDiv( oUrl, oTarget ) 在main框架中动态生成一
    个层,下面是小弟写的,不知道出错在哪里(前面的粘错了)
    */目前的描述应该没有问题,
    为了确定,我重复你的需求:"在左边框架响应某些动作,结果是:右边的框架中产生一个层?"
    如果是这样,针对上述代码,你可以明确两个方面:1:当在左边响应某些事件时,是否是正确的响应到右边框架;//这一步是取右边窗口,类似你下面代码
    /**
    parent.frames[oTarget].location = oUrl;
    var maindocument = parent.frames[oTarget].document;
    */2:如果上一步没问题,再试着去右框架追加结点,先不加样式,这样便于你调试;3:如果第二步成功实现,再去对追回的结点进行样式;