这些年遇到的js的坑

简介:

总结一些这些年遇到的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")得到的是nullundefined

 

 

正确的代码:

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

 

 

 

(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属性去掉

 

参考:http://www.tuicool.com/wx/jyee2mf

 

相关文章
|
5月前
|
JavaScript 前端开发 Java
js常用技巧汇总
js常用技巧汇总
|
2月前
|
自然语言处理 JavaScript
js之this
js之this
26 1
|
2月前
|
缓存 前端开发 算法
Next.js
Next.js【8月更文挑战第4天】
34 1
|
11月前
|
JavaScript
|
5月前
|
JavaScript 前端开发
什么是js?
什么是js?
|
5月前
|
JavaScript
this的使用(js的问题)
this的使用(js的问题)
18 0
|
5月前
|
存储 JavaScript 前端开发
js的一些小技巧
js的一些小技巧
|
XML JavaScript 前端开发
|
JavaScript
js有什么用
js有什么用
83 0
|
JavaScript 前端开发
sdmenu js
引用:http://hi.baidu.com/coolcat_police/blog/item/8762694446a8ed87b3b7dc06.html 其它博文:http://hi.baidu.com/coolcat_police/blog/category/Jquery     上网下载sdmenu的javascript。
907 0
下一篇
无影云桌面