解决xadmin.add_tab添加新标签页时,需要刷新整个页面才能显示问题
最近在写一个通过ssh发送执行命令的简单爬虫调度管理后台,后台用的django,前端用的xadmin,由于前端不熟悉,出现了各种各样的问题(吐槽一下,前端是真的恶心)
遇到了这样一个问题,在标签页页面内使用xadmin.add_tab再次打开一个新的标签时,无任何反应,刷新整个页面(不是刷新该标签)后,新打开的标签才会出现,该问题需要修改xadmin.js, 在第一个function也就是;!function (win) 中添加如下代码
//在xadmin.js中;!function (win)中添加
Xadmin.prototype.add_tab_f = function (title,url,is_refresh) {
var element=parent.layui.element;
var id = md5(url);
//防止标签重复打开
for (var i = 0; i < parent.$('.x-iframe').length; i++) {
if(parent.$('.x-iframe').eq(i).attr('tab-id')==id){
element.tabChange('xbs_tab', id);
if(is_refresh)
parent.$('.x-iframe').eq(i).attr("src",parent.$('.x-iframe').eq(i).attr('src'));
return;
}
};
element.tabAdd('xbs_tab', {
title: title
,content: '<iframe tab-id="'+id+'" frameborder="0" src="'+url+'" scrolling="yes" class="x-iframe"></iframe>'
,id: id
});
element.tabChange('xbs_tab', id);
}
然后使用我们添加的方法add_tab_f使用即可
xadmin.add_tab_f("标签名", 'url' )
xadmin使用的是layui,可以看下开发使用文档
另外,当时遇到前端的问题去问了下朋友中的前端大佬,疯狂吐槽我用这么古老的东西,反正我是拿来主义能用就行