easyUI layout 中使用tabs+iframe解决请求两次方法
demo中的事例在加載tab頁(yè)面時(shí)是
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 });由于學(xué)疏才淺,簡(jiǎn)單的理解為,頁(yè)面加載時(shí)iframe渲染一次,tab加載時(shí)又刷新一次頁(yè)面,導(dǎo)致兩次請(qǐng)求
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執(zhí)行'update'前加上opts.content = "";便解決了兩次請(qǐng)求的問(wèn)題,不知道會(huì)不會(huì)有什么后患
?
后期發(fā)現(xiàn)點(diǎn)擊樹(shù)葉節(jié)點(diǎn),界面不在刷新,是因?yàn)樵趫?zhí)行addTab 這個(gè)function時(shí)var url = $(currTab.panel('options').content).attr('src');此時(shí)得到的url="",所以不能繼續(xù)向下執(zhí)行做update方法;我就干脆把它注釋掉了,直接用參數(shù)里傳過(guò)來(lái)的url參數(shù)。開(kāi)始想用創(chuàng)建好的iframe里的屬性src,但是由于要傳遞參數(shù),iframe創(chuàng)建好后,沒(méi)有修改src屬性,調(diào)到的參數(shù)值一直是第一次創(chuàng)建的iframe的src屬性,所以干脆就注釋了,使用了參數(shù)的url值,不知還會(huì)有什么Bug???
?
總結(jié)
以上是生活随笔為你收集整理的easyUI layout 中使用tabs+iframe解决请求两次方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java写入文件的几种方法分享
- 下一篇: 微软职位内部推荐-Principal G