clearTimeout 方法在IE上的兼容问题

tech2023-06-17  103

今天在做项目时。发现同事写的代码中的存在一个bug问题,出错代码如下:

clearTimeout(); setTimeout(function(){ // 具体业务逻辑 }, 1000);

这段代码在chrome、firefox浏览器中不会报错,但在IE上会报“调用对象无效”或着报“clearTimeout对象无效”这个错误信息,经过查询发现clearTimeout这个方法必须要传一个参数,具体应修改为:

 

var timer = null; clearTimeout(timer); timer = setTimeout(function(){ // 具体业务逻辑 }, 1000);

但是经过这样修改后,浏览器控制台还是报同样的错误,经常尝试发现,clearTimeout() 方法需要传入一个 setTimeout() 方法返回的id,当没有返回值时,clearTimeout() 方法在IE下执行还是会报错,最后修改结果如下:

var timer = null; if(null != timer){ clearTimeout(timer); } timer = setTimeout(function(){ // 具体业务逻辑 }, 1000);

当修改成这样时,IE就不会在出现问题了。

最新回复(0)