easyUI layout 中使用tabs+iframe解決請求兩次方法


demo中的事例在加載tab頁面時是

 1   function createFrame(url) {
 2             var s = '<iframe name="iframepanel" scrolling="no" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>';
 3             return s;
 4         }
 5 var content = createFrame(url);
 6                 $('#tabs').tabs('add', {
 7                     title: title,
 8                     content: content,
 9                     closable: true
10                 });

由於學疏才淺,簡單的理解為,頁面加載時iframe渲染一次,tab加載時又刷新一次頁面,導致兩次請求

function _323(_324,pp,_325){
var _326=$.data(_324,"tabs");
_325=_325||{};
pp.panel($.extend({},_325,{border:false,noheader:true,closed:true,doSize:false,iconCls:(_325.icon?_325.icon:undefined),onLoad:function(){
if(_325.onLoad){
_325.onLoad.call(this,arguments);
}
_326.options.onLoad.call(_324,$(this));
}}));
var opts=pp.panel("options");
var tabs=$(_324).children("div.tabs-header").find("ul.tabs");
opts.tab=$("<li></li>").appendTo(tabs);
opts.tab.append("<a href=\"javascript:void(0)\" class=\"tabs-inner\">"+"<span class=\"tabs-title\"></span>"+"<span class=\"tabs-icon\"></span>"+"</a>");
$(_324).tabs("update", { tab: pp, options: opts });
};

而在tabs執行'update'前加上opts.content = "";便解決了兩次請求的問題,不知道會不會有什么后患

 

后期發現點擊樹葉節點,界面不在刷新,是因為在執行addTab 這個function時var url = $(currTab.panel('options').content).attr('src');此時得到的url="",所以不能繼續向下執行做update方法;我就干脆把它注釋掉了,直接用參數里傳過來的url參數。開始想用創建好的iframe里的屬性src,但是由於要傳遞參數,iframe創建好后,沒有修改src屬性,調到的參數值一直是第一次創建的iframe的src屬性,所以干脆就注釋了,使用了參數的url值,不知還會有什么Bug???

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM