avascript的坑(二)

总结一些这些年遇到的javascript的坑,当然也是自己学艺不精.现总结如下

(1)声明js函数(js方法)时报错

 原因是:缺少function关键字.

正确的应该是:

Js代码   收藏代码
  1. com.whuang.hsj.getCustomAttr=function(htmlNode22,attr)  
  2. {  
  3.     var hospitalId=htmlNode22[attr];  
  4.     if(hospitalId==undefined||hospitalId==null){  
  5.         hospitalId=htmlNode22.getAttribute(attr);  
  6.     }  
  7.     return hospitalId;  
  8. }  

 

 

 

(2)浏览器报错缺少分号

 

Js代码   收藏代码
  1. var isHasObj = eval('(' + obj + ')');  
  2.             int errorType=isHasObj.errorType;//见常量类  
  3.             if (isHasObj.success) {  
  4.                 jInfo("亲,工作辛苦了!""签到成功"null);  
  5.             }else{  
  6.                 if(errorType==1){  
  7.                     jAlert("主人,邮箱记错了吧!""签到失败"null);  
  8.                 }else{  
  9.                     jAlert("额,主公不给力啊!""签到失败"null);  
  10.                 }  
  11.                   
  12.             }  

 

根本原因:javascript中使用int

 

解决方法:

 

int改为var

(3)js报错 Out of memory at line xxx

原因:函数同名,参数列表不同;js中没有重载,下面的函数会覆盖上面的函数,导致函数调用自身,产生了无限循环.

修复方法:在其中一个函数名后加2,使两个函数的函数名不同。

Js代码   收藏代码
  1. com.whuang.hsj.isSel4CheckboxbySequence=function(prefixStr,countMin,countMax){  
  2.     var initBool=false;  
  3.     for(var ik=countMin;ik<=countMax;ik++){  
  4.         var checkbox227=com.whuang.hsj.$$arr(prefixStr+ik);  
  5.         if(checkbox227==null||checkbox227==undefined){  
  6.               
  7.         }else{  
  8.             if(com.whuang.hsj.isCheckcheckbox(checkbox227)){  
  9.                 initBool=true;  
  10.             checkbox227=null;//free memory  
  11.                 break;  
  12.             }  
  13.         }  
  14.     }  
  15.     return initBool;  
  16. };  
  17. /** 
  18.  * example:input type="checkbox" name="id_selected_1" 
  19.  * @param {Object} prefixStr 
  20.  * @param {Object} countMax 
  21.  * function name must use diffrent name !!! 
  22.  */  
  23. com.whuang.hsj.isSel4CheckboxbySequence2 = function(prefixStr, countMax){  
  24.     return com.whuang.hsj.isSel4CheckboxbySequence(prefixStr,1,countMax);  
  25. };  

 

 

(4)TypeError: document.getElementsByName(...)[0] is undefined

详细错误信息:

 有问题的代码:

 根本原因是:页面没有加载完,所以document.getElementsByName("user.username")得到的是null或undefined

 

 

正确的代码:

 注意:红框中的内容是我增加的.

 

 

 

(5)斜杠导致报错

 原因是:\u   ,\upload中

 

(6)我们经常在超链接的href中执行javascript代码

例如

Html代码   收藏代码
  1. <a href="javascript: disAbleA(this)" style="color:#fff;">上一页</a>  

 这里的this不是超链接对象,而是window(浏览器全局对象)

 

(7)对象中多了一个逗号

 最后一个逗号应该去掉,当然不去掉有的浏览器也不报错.

 

(8)为什么js始终不执行呢?

 原因:因为javascript指定了src属性,所以不会执行,应该把src属性去掉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值