[BUG反饋]OneThink後臺管理列表的搜尋程式碼優化

發表於2020-04-04
在使用OneThink的時候,它後臺的原生搜尋js程式碼在IE中會出現記憶體溢位的問題,也就是說在IE中無法使用搜尋功能。
問題的關鍵出現在這兩句程式碼上,它是用於篩選不為空的項。
 query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
 query = query.replace(/^&/g,'');
如果要讓它在IE上支援,必須要改造一下程式碼。
原始碼
/搜尋功能        
$("#search").click(function(){
        var url = $(this).attr('url');
        var query = $('.search-form').find('input').serialize();
        query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
        query = query.replace(/^&/g,'');
        if( url.indexOf('?')>0 ){
               url += '&' + query;
        }else{
                 url += '?' + query;
        }               
        window.location.href = url;        
});
        


改造後的程式碼
//搜尋功能
     $("#search").click(function(){
        var url = $(this).attr('url');
        var status = $("#sch-sort-txt").attr("data");
        var query_obj= $(".search-form input").filter(function(index) {
            return $(this).val() != '';
        });//篩選為空的項 
        var query = query_obj.serialize();
        if(status != ''){ 
            query = 'status=' + status + "&" + query; 
        }
        if( url.indexOf('?')>0 ){ 
            url += '&' + query;
        }else{
            url += '?' + query;
        }
        window.location.href = url;
});
感謝碼農小兵 http://www.devdo.net/onethink-search-optimization.html
回覆

相關文章