zoukankan      html  css  js  c++  java
  • JS给XMLHttpRequest添加filter

    function XMLHttpRequestFilter(){
        let base = XMLHttpRequest.prototype.open;
    	
    	let filter_list = [];
    	
    	let add = function(fun, key='_fn'){
    		filter_list.push([key, fun])
    		XMLHttpRequest.prototype.open = function(...args){
    			filter_list.map(x=>{
    				let check = x[1](args)
    				if(check){
    					throw check; 
    				}
    			});
    			base.apply(this,args)
    		}	
    	};
    	
    	let remove = function(key='_fn'){
    		filter_list = filter_list.filter(x=>x[0]!=key);
    	};
    	
    	let removeAll = function(){
    		filter_list.length=0;
    		XMLHttpRequest.prototype.open = base	
    	};
    	
    	return {add, remove, removeAll}
    }
    
    t.add(console.log, 'k1')
    t.add(console.dir, 'k2')
    t.add(console.log, 'k3')
    
    t.remove('k2')
    t.removeAll()
    
    t.add(console.log, "k1")
    t.add(()=>"123", 'k2')
    t.add(console.dir, "k1")
    
    t.remove("k2")
    

      

  • 相关阅读:
    文件操作
    安全名词
    浏览器并发连接
    acm 2057
    acm 2072
    acm 2084
    acm 2044
    acm 2043
    acm 2032
    acm 2005
  • 原文地址:https://www.cnblogs.com/413xiaol/p/11209827.html
Copyright © 2011-2022 走看看