转:IE8下propertychange事件引发的栈溢出
1 $("#idname").bind("input propertychange", function() { 2 //函数执行...... 3 })
在IE8下会发生栈溢出问题,Stack overflow,从而前端页面控制台进入死循环
解决方法如下:增加一个全局的同步信号
1 $("#idname").bind("input propertychange", function() { 2 if($.syncProcessSign) return ; 3 $.syncProcessSign = true; 4 //函数执行... 5 $.syncProcessSign = false; 6 })
注:这个锁在同一个页面只能使用在一个地方,如果使用在多处地方,有可能会出现其中一个事件还未执行完成而导致$.syncProcessSign = true的局面,进而导致其他事件无法触发的情况发生(公司的项目中有出现过一次此事件,当时是客户那边会出现这种事,而公司的这边没人能够复现,后面通过查找并猜测,找到是这个问题,最后只能选择去掉此锁,使用体验感不太好的keyup和change来替代)
转载自:https://blog.csdn.net/qq_39267517/article/details/79103612