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; } }

 

  

转载于:https://www.cnblogs.com/liuyu7177/archive/2013/05/31/3110886.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值