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 }); } } }
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 }); } }
跟新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; } }