解决xadmin.add_tab添加新标签页时,需要刷新整个页面才能显示问题

解决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,可以看下开发使用文档

另外,当时遇到前端的问题去问了下朋友中的前端大佬,疯狂吐槽我用这么古老的东西,反正我是拿来主义能用就行

猜你喜欢

转载自blog.csdn.net/L_W_D_/article/details/118068504