这些年遇到的js的坑

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

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

 原因是:缺少function关键字.

正确的应该是:

com.whuang.hsj.getCustomAttr=function(htmlNode22,attr)
{
	var hospitalId=htmlNode22[attr];
	if(hospitalId==undefined||hospitalId==null){
        hospitalId=htmlNode22.getAttribute(attr);
    }
    return hospitalId;
}

 

 

 

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

 

var isHasObj = eval('(' + obj + ')');
			int errorType=isHasObj.errorType;//见常量类
			if (isHasObj.success) {
				jInfo("亲,工作辛苦了!", "签到成功", null);
			}else{
				if(errorType==1){
					jAlert("主人,邮箱记错了吧!", "签到失败", null);
				}else{
					jAlert("额,主公不给力啊!", "签到失败", null);
				}
				
			}

 

根本原因:javascript中使用int

 

解决方法:

 

int改为var

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

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

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

com.whuang.hsj.isSel4CheckboxbySequence=function(prefixStr,countMin,countMax){
	var initBool=false;
	for(var ik=countMin;ik<=countMax;ik++){
		var checkbox227=com.whuang.hsj.$$arr(prefixStr+ik);
		if(checkbox227==null||checkbox227==undefined){
			
		}else{
			if(com.whuang.hsj.isCheckcheckbox(checkbox227)){
				initBool=true;
			checkbox227=null;//free memory
				break;
			}
		}
	}
	return initBool;
};
/**
 * example:input type="checkbox" name="id_selected_1"
 * @param {Object} prefixStr
 * @param {Object} countMax
 * function name must use diffrent name !!!
 */
com.whuang.hsj.isSel4CheckboxbySequence2 = function(prefixStr, countMax){
	return com.whuang.hsj.isSel4CheckboxbySequence(prefixStr,1,countMax);
};

 

 

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

详细错误信息:

 
有问题的代码:

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

 

 

正确的代码:

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

 

 

 

(5)斜杠导致报错

 原因是:\u   ,\upload中

 

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

例如

<a href="javascript: disAbleA(this)" style="color:#fff;">上一页</a>

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

 

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

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

 

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

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

 

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

 

学习笔记见附件

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值