这些年遇到的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

?

学习笔记见附件

?

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。