easyui tab update bug 完美解决方案 调用当前tab的iframe

情况介绍 :这个方案解决用easyui 的tab做标签页时, tab 用update 刷新之后tab页不能关闭的问题

1.判断tab是否存在。
   var currtab = $('#tabs').tabs('getSelected');

2.判断点击的tab是否是当前选中的tab。
  var currtab = $('#tabs').tabs('getSelected');
  var tab = $("#tabs").tabs("getTab", title);
  if (currtab == tab)
   {
     ...
   }
3.是当前tab时,刷新。
    var url = $(currtab.panel('options').content).attr('src'); 
    refreshTab(tab, url);
4.不是当前tab时,转换当前选中的tab,在刷新!
     var tab = $("#tabs").tabs("select", title);
     var currtab = $('#tabs').tabs('getSelected');
     var url = $(currtab.panel('options').content).attr('src');
                    refreshTab(tab, url);
 5.更新tab 对应的iframe  公用的方法
     function refreshTab(obj,url)
{
var refresh_tab = obj; if (refresh_tab && refresh_tab.find('iframe').length > 0)
{
var _refresh_ifram = refresh_tab.find('iframe')[0]; _refresh_ifram.contentWindow.location.href = url; } }

 

1.第一种方案 删除tab页 在新增一个tab

 function addTab(title, url) {
     if ($('#tabs').tabs('exists', title)) 
      {
         var currtab = $('#tabs').tabs('getSelected');
         var tab = $("#tabs").tabs("getTab", title);
             if (currtab == tab)
              {
                 var url = $(currtab.panel('options').content).attr('src');
                 if (url != undefined && currtab.panel('options').title != 'Home')
                 {
                     var index = $('#tabs').tabs('getTabIndex', tab);
                     $('#tabs').tabs('close', index);
                     $('#tabs').tabs('add',
                        {
                            title: title,
                            content: createFrame(url),
                            closable: true
                       });
                }
                else 
                {
                    var tab = $("#tabs").tabs("select", title);
                }
            }
            else {
                var content = createFrame(url);
                $('#tabs').tabs('add',
                    {
                        title: title,
                        content: content,
                        closable: true
                    });
                 }
       }
}
View Code

2.第二种方案 跳到对应的tab 在刷新

  function addTab(title, url) {
            if ($('#tabs').tabs('exists', title)) {
                var currtab = $('#tabs').tabs('getSelected');
                var tab = $("#tabs").tabs("getTab", title);
                if (currtab == tab) {
                    var url=$(currtab.panel('options').content).attr('src');

                    refreshTab(tab, url);
                }
                else {
                    var tab = $("#tabs").tabs("select", title);
                    var currtab = $('#tabs').tabs('getSelected');
                    var url = $(currtab.panel('options').content).attr('src');
                    refreshTab(tab, url);
                }
            }
            else {
                var content = createFrame(url);
                $('#tabs').tabs('add',
                    {
                        title: title,
                        content: content,
                        closable: true
                    });
            }
        }
View Code
 跟新tab 对应的iframe
function refreshTab(obj,url)
{
var refresh_tab = obj; if (refresh_tab && refresh_tab.find('iframe').length > 0)
{
var _refresh_ifram = refresh_tab.find('iframe')[0]; _refresh_ifram.contentWindow.location.href = url; } }

 

  

posted on 2013-05-31 18:12  六欲  阅读(1476)  评论(1编辑  收藏  举报

导航