`

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

 

学习笔记见附件

 

  • 大小: 21.8 KB
  • 大小: 21.8 KB
  • 大小: 16.2 KB
  • 大小: 9 KB
  • 大小: 46 KB
  • 大小: 48.8 KB
  • 大小: 12.8 KB
  • 大小: 40.8 KB
  • 大小: 52.4 KB
1
1
分享到:
评论

相关推荐

    基于js粘贴事件paste简单解析以及遇到的坑

    【基于js粘贴事件paste简单解析以及遇到的坑】 在JavaScript中,`paste`事件允许开发者在用户执行粘贴操作时捕获并处理剪贴板的内容。本文将深入探讨如何在Chrome浏览器中利用此事件,并解决与Safari浏览器兼容性的...

    微信小程序开发附源码:详解微信JS-SDK选择图片遇到的坑.doc

    在微信小程序开发中,经常会遇到各种技术挑战,特别是在使用微信JS-SDK时。本文主要针对在使用微信JS-SDK选择图片功能时所遇到的问题进行了详细分析,并提供了相应的解决方案。 首先,微信JS-SDK中的`chooseImage`...

    解析JS在获取当前月的最后一天遇到的坑

    本文主要解析了JavaScript(简称JS)在获取当前月份最后一天时可能遇到的问题,并提供了解决方案。众所周知,日期时间的处理在编程中是一个常见的需求,但同时也充满了许多陷阱。由于每个月的天数不同,而且涉及到...

    vue中路由参数传递可能会遇到的坑

    在这篇文章中,我们将详细介绍 Vue 中路由参数传递可能会遇到的坑,并提供了详细的示例代码,帮助大家更好地理解和避免这些坑。 路由参数传递的方法 在 Vue 中,路由参数传递有多种方法,包括使用 `router-link` ...

    实例分析nodejs模块xml2js解析xml过程中遇到的坑

    不过在实际应用中,开发者可能会遇到一些意料之外的坑,本文就将详细介绍在使用xml2js解析XML的过程中遇到的一些问题以及解决办法。 首先,需要了解的是xml2js模块中的parseString方法,这是解析XML数据的核心函数...

    微信小程序实现语音识别转文字功能及遇到的坑

    在微信小程序中实现语音识别转文字功能,开发者需要面对一系列技术挑战和问题。本文将详细介绍这一过程中的关键步骤和常见陷阱。...理解这些细节并妥善处理,才能确保语音识别功能的稳定性和准确性。

    微信小程序点击生成朋友圈分享图(遇到的坑)

    在实现这一功能时,开发者可能会遇到各种问题,本篇将详细介绍这些“坑”以及如何解决。 首先,我们来看一下在微信小程序中实现点击生成朋友圈分享图的基本结构: 1. **WXML部分**: 在WXML文件中,需要包含一个`...

    Algorithm-javascript填坑记录.zip

    JavaScript填坑记录是对开发者在学习和应用算法过程中遇到的问题与解决方法的详细记录。这个名为"Algorithm-javascript填坑记录.zip"的压缩包文件,很可能包含了作者在深入理解和实现算法时的经验总结和代码示例。 ...

    海康web3.3对接流程以及开发中遇到的“坑”

    这些代码代表设备或系统在运行中遇到的异常状态,如网络连接问题、权限错误等。开发者应根据错误代码,查找对应的解决方案,以便快速定位并解决问题。 3.2 错误码 错误码提供了更具体的错误信息,帮助开发者理解...

    vue.js打包之后可能会遇到的坑!

    - Vue.js项目通过webpack打包后,可能会遇到资源路径问题,导致资源无法正确加载,因此在项目根目录下设置静态资源路径是推荐做法。 - 若资源路径没有设置正确,可能会遇到资源无法找到的错误。例如,如果资源路径...

    解决JS浮点数(小数)计算加减乘除的BUG

    这个问题是许多开发者在编写JavaScript代码时可能遇到的一个常见陷阱。本文将深入探讨这个问题,并提供解决方案。 首先,我们需要理解JavaScript中的浮点数是如何存储的。JavaScript使用IEEE 754标准来表示浮点数,...

    vue-router之解决addRoutes使用遇到的坑

    最近项目中使用了vue-router的addRoutes这个api,遇到了一个小坑,记录总结一下。 场景复现: 做前端开发的同学,大多都遇到过这种需求:页面菜单根据用户权限动态生成,一个常见的解决方案是: 前端初始化的时候,...

    vue resource post请求时遇到的坑

    在本文中,我们介绍了 Vue Resource POST 请求时遇到的坑,以及解决这些问题的方法。使用 Vue Resource 进行 POST 请求时,需要注意添加头信息 `Content-Type` 和使用 `emulateJSON` 选项,以避免出现问题。希望这些...

    详解Node.js 中使用 ECDSA 签名遇到的坑

    最近有个朋友问我关于 Node.js 下使用 ECDSA 的问题,主要是使用 Node.js 的 Crypto 模块无法校验网络传输过来的签名结果。在踩坑无数后,终于搞清楚了原因。 坑 0x00:签名输出格式 在排除了证书、消息不一致的...

    解决vue 给window添加和移除resize事件遇到的坑

    本文将深入探讨如何在Vue中正确地添加和移除window对象的resize事件监听,以及在处理过程中可能遇到的坑。 首先,要明白Vue生命周期钩子函数中的mounted和beforeDestroy的使用时机。mounted是在组件被挂载后调用,...

Global site tag (gtag.js) - Google Analytics