js执行多个window.onload产生too much recursion错误解决办法

时间:2013-02-23 00:10:02  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:p>,通用的解决方案如下:  代码如下 复制代码
  正文:Web程序中利用JavaScript执行多个window.onload事件是非常普通的,但如果使用中要保证每个window.onload事件执行,今天我在测试时突然出现了js(第二电脑网http://www.002pc.com)执行多个window.onload产生too much recursion错误下面我们就来看看解决办法吧。

,通用的解决方案如下:

 代码如下 复制代码

<script type="text/javascript">
var func = window.onload;
window.onload = function(){
    func ? func() : 0;
    alert(1);
}
</script>

这样的原理就是把window.onload事件一级一级传递,保证每一个window.onload事件能执行,但如果出现多次调用而且变量名一样,就会产生too much recursion错误,如下

 代码如下 复制代码

<script type="text/javascript">
var func = window.onload;
window.onload = function(){
    func ? func() : 0;
    alert(1);
}
 
func = window.onload;
window.onload = function(){
    func ? func() : 0;
    alert(2);
}
</script>

上面实现执行两个window.onload事件,但由于每次传递window.onload事件定义为相同的变量名,就会产生too much recursion错误。

解决方法
由于产生的原因是因为定义为相同的变量名产生循环执行代码,因此解决方法只需要把变量名定义不同即可解决。如下

 代码如下 复制代码

<script type="text/javascript">
var func = window.onload;
window.onload = function(){
    func ? func() : 0;
    alert(1);
}
 
func1 = window.onload;
window.onload = function(){
    func1 ? func1() : 0;
    alert(2);
}
</script>


Web页面如果出现多次window.onload事件,尽量能合并操作处理,或实现类似于jQuery的ready事件机制,解决冗余代码问题,提高代码的可读性。

 

js执行多个window.onload产生too much recursion错误解决办法》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/JavaScript/26188.html


关于《js执行多个window.onload产生too much recursion错误解决办法》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td