数组原型方法调用及函数apply调用时类数组参数在IE8或以下版本的问题


当函数以 apply 方式调用时, 传参方式是一个由各个参数组成的数组或类数组(一个有length属性的对象),传入参数个数取决于 length 的值,例如,某个对象 args.length=3; apply 会将 args[0],args[1],args[2] 三个参数传入,如果对应的值不存在则传入了undefined.

例如:

Javascript代码
  1. function f(a,b,c){ console.log(a,b,c);}  
  2. f.apply(null,{0:123,1:456,2:789,length:2});//123 456 undefined ,因为 length 属性值为2,值只传入了 2 个参数  
  3. f.apply(null,{10:123,11:456,12:789,length:3});// undefined undefined undefined , 因为参数对象不存在以 0、1、2 为...  


11年前9月30日 阅读:265 评论:0

Javascript中模拟PHP的print_r函数


有些效果出不来,比如变量类型是object类型的不能完全打印!

Javascript代码
  1. function print_r(array, return_val) {  
  2.     var output = '', pad_char = ' ', pad_val = 4, d = this.window.document,  
  3.     getFuncName = function (fn) {  
  4.         var name = (/\W*function\s+([\w\$]+)\s*\(/).exec(fn);  
  5.         if (!name) {  
  6.             return '(Anonymous)';  
  7.         }  
  8.         return name[1];  
  9.     },  
  10.     repeat_char = function (len, pad_char) {  
  11.         var str = '';  
  12.         for (var i = 0; i < len; i++)...  


13年前10月8日 阅读:156 评论:0

获取js后所带的参数,如:a.js?a=value1&amp;b=value2


将以下代码保存为:a.js

Javascript代码
  1. function querystring(){        
  2.     this.params = new Object();        
  3.     this.initialize = function(){        
  4.         var param=this.paramstring();        
  5.         if(param.length == 0) return;        
  6.         if(param.substring(0,1)=='?'){        
  7.             param=param.substring(1);        
  8.         }        
  9.         param = param.replace(/\+/g, ' ');        
  10.         var args = param.split('&amp;');            
  11.         for (var i=0;i<a...  


16年前9月11日 阅读:956 评论:0

一个简单的Ajax类


Javascript代码
  1. /**   
  2.     Powered By CMSDream Copyright © 2007-2008 All rights reserved.   
  3.     14:21 2008-5-10   
  4. **/    
  5. function CMSDreamAjaxLib(){     
  6.     /**//**   
  7.     成员变量   
  8.     */    
  9.     this.XMLHttpReq = null;     //XML对象     
  10.     this.method = "post";       //执行的方法(post/get)     
  11.     this.url = "";          //异步调用的页面地址     
  12.     this.responseText = "";     //异步返回的响应字符串     
  13.     this.responseXML = "";      //异步返回的响应XM...  


16年前9月8日 阅读:131 评论:0

动态加载样式元素的函数(兼容IE,FireFox,Opera)


如题,目前只对IE,FireFox,Opera这三种浏览器的兼容性进行过测试,其它浏览器还未测试。

有兴趣的朋友可以研究一下,应该也没问题的。

Javascript代码
  1. function AttachStyle(styDom, styCss, styId){     
  2.     var istyle = styDom.createElement('style');     
  3.     istyle.setAttribute("type""text/css");     
  4.     if(styId!=null){if(!document.getElementById(styId)){istyle.setAttribute("id", styId);}}     
  5.     if (istyle.styleSheet){     
  6.         istyle.styleSheet.cssText=styC...  


16年前9月7日 阅读:245 评论:0

非常好用的Js的querystring类


Javascript代码
  1. /**   
  2.     Powered By CMSDream Copyright © 2007-2008 All rights reserved.   
  3.     15:10 2008-6-7   
  4. **/    
  5. function querystring(paramstring){     
  6.     this.url=window.location.href;     
  7.     this.params = new Object();     
  8.     this.initialize = function(){     
  9.         if(paramstring.length == 0) return;     
  10.         if(paramstring.substring(0,1)=='?'){     
  11.             paramstring=paramstring.substring(1);     
  12.         }     
  13.         paramstring = p...  


17年前6月7日 阅读:190 评论:0

获取字符串长度的函数(ASP/VB/JS)


Javascript代码
  1. function strLen(str){        
  2.     var len=0;        
  3.     for(var i=0;i<str.length;i++){        
  4.         var intCode=str.charCodeAt(i);        
  5.         if(intCode>=0 &amp;&amp; intCode<=128){        
  6.             len = len + 1;        
  7.         }else{        
  8.             len = len + 2;        
  9.         }        
  10.     }        
  11.     return len;        
  12. }  



ASP/Visual Basic代码
  1. Private Function Length(iTxt)     
  2.     Dim txt: txt = Trim(iTxt)     
  3.     Dim x: x = Len(txt)     
  4. ...  


18年前6月7日 阅读:228 评论:0