透過使用 jQuery EasyUI 可以輕鬆地添加 Tabs。您只需要呼叫 'add' 方法。
function addTab(title, href,icon){ var tt = $('#tabs'); if (tt.tabs('exists', title)){//如果tab已经存在,则选中并刷新该tab tt.tabs('select', title); refreshTab({tabTitle:title,url:href}); } else { if (href){ var content = '<iframe scrolling="no" frameborder="0" src="'+href+'" style="width:100%;height:100%;"></iframe>'; } else { var content = '未实现'; } tt.tabs('add',{ title:title, closable:true, content:content, iconCls:icon||'icon-default' }); } } /** * 刷新tab * @cfg *example: {tabTitle:'tabTitle',url:'refreshUrl'} *如果tabTitle为空,则默认刷新当前选中的tab *如果url为空,则默认以原来的url进行reload */ function refreshTab(cfg){ var refresh_tab = cfg.tabTitle?$('#tabs').tabs('getTab',cfg.tabTitle):$('#tabs').tabs('getSelected'); if(refresh_tab && refresh_tab.find('iframe').length > 0){ var _refresh_ifram = refresh_tab.find('iframe')[0]; var refresh_url = cfg.url?cfg.url:_refresh_ifram.src; //_refresh_ifram.src = refresh_url; _refresh_ifram.contentWindow.location.href=refresh_url; }
以上程式碼簡單易懂,程式碼就是註釋,有疑問歡迎給我留言。
ps: jQuery Easyui 的tabs外掛程式有兩種方式來載入某個tab(標籤頁)上的內容:「href遠端請求」和「content本地內容」。
兩者特點:
href方式載入資料的特性:
載入的頁面只有body元素內部的內容才會被載入,也就是jQuery的ajax請求的只是html片段。
載入遠端url時有遮罩效果,也就是「等待中…」效果,使用者體驗較好。
當載入的頁面佈局較為複雜,或是有較多的js腳本需要運作的時候,編碼往往就需要謹慎了,容易出問題,後面會詳細談。
content方式載入資料的特性:
比較靈活,你可以在腳本裡面拼html程式碼,然後賦值給tab的content屬性,不過這種寫法會讓程式碼易讀性變差。
可以把iframe賦給content,把一個iframe嵌入也就沒有什麼不能完成的了。
使用iframe會造成客戶端js重複加載,浪費資源,比如說你主頁要引用easyui的函式庫,你的iframe也要引用,浪費就產生了。