iteye_6989 2009-03-12 00:49
浏览 196
已采纳

ext tablpanel 和 iframe问题

小弟遇到一个严重的问题 用ext 中的 tablpanle 包含 iframe 出现下列情况
      比如 左边是树行菜单,点一个树形菜单 增加一个tab 每个tab加载一个iframe,打开tab加载iframe没有问题 ,但是如果关了其中一个tab,然后再打开任何一个tab,那么ifrmame都显示的是最后关掉tab中的iframe,百思不得其解,请大哥们赐教,先上代码

     function addTab(url,name,id)
     {
                
                var tmptab = tabsDemo.getItem("newtab"+id);
                if(tmptab)tabsDemo.remove(tmptab,true);
                tabsDemo.add({
                title:name,
                layout:'fit',
                id:"newtab"+id,
                //autoScroll:true, 
                autoDestroy:false,
                enableTabScroll:true,//挤的时候能够滚动收缩
                closable:true,
                html : '<div id="aa"><iframe id = "tabiframe" src="'+url+'"/> </div>'
           }).show(); 
                alert(Ext.get(''+id+'').dom.src);
                Ext.get("tabiframe").dom.src = url; 

                
         
     }


 

 


问题补充:
嗨 你好老大  function removeTabByIdd(sqId){
  var idd="GDCM"+sqId;
  try{
  var tabEle = centerTabPanel.getItem(idd);
  if(tabEle){
  centerTabPanel.remove(tabEle,true);
  }
  }catch(e){}
  }

放在哪里啊
问题补充:
谢谢大哥的再次关注 我要在点tab小叉的时候执行removeTabByIdd事件 tab生成的时候应该如何写呢 把removeTabByIdd加入到 关闭事件中
  • 写回答

4条回答 默认 最新

  • weixin_42312248 2009-03-18 09:59
    关注

    [code="java"]
    function openMain(href,name){
    try{
    //当标签数组中有数据时,开始比对当前操作的超链接所生成的标签页是否已经存在。如果存在就不再创建相同的标签页,对标签页进行显示操作
    if (addIndex > 0){
    for (var i=0; i<tabsArray.length; i++){
    if (tabsArray[i].title == name){
    tabsArray[i].show();
    return;
    }
    }
    }

        //创建链接标签页
        tabsArray[addIndex] = tabs.add({
            title: name,
            html: '<iframe scrolling="auto" width="100%" height="100%" frameborder="0" src="'+href+'"></iframe>',
            closable:true,              //是否可关闭
            destroy:function(){         //销毁当前标签页面所触发的事件
                var bakArray = new Array(); 
                var bakIndex = 0;
                //比对当前销毁的标签在标签对象中的位置,比对成功后就将当前标签页删除。没有匹配到的标签对象,将移动到备份数组中
                for (var removeIndex=0; removeIndex<tabsArray.length; removeIndex++){
                    if (tabsArray[removeIndex].title == name){
                        tabsArray[removeIndex] = '';    //删除当前标签页
                    }else{
                        bakArray[bakIndex] = tabsArray[removeIndex];
                        bakIndex++;
                    }
                }
    
                tabsArray = bakArray;           //重新排序标签页数组
                addIndex = bakArray.length;     //重定义标签数组累加器
    
            },
            autoScroll:true
        }).show();  //创建标签页完成后显示
    
        addIndex++;
    }catch(e){
        alert(e.message);
    }
    

    }
    [/code]
    以上代码是我们项目用到的tab选项卡功能,也是使用的iframe打开新页面,但是没有出现过你说的情况,以上代码可以给你点参考意见

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码