仅IE不支持setTimeout/setInterval函数的第三个以上参数

yizhihongxing

首先需要明确,setTimeoutsetInterval函数的第三个以上参数在所有现代浏览器和IE9以上版本均被支持。但是,在IE9及以下版本中,第三个以上参数并不会被当做函数的参数传递进去,而是被当做全局对象属性传递进去。

解决方法是在第三个以上参数中传入一个字符串类型的函数参数,在函数内通过eval方法执行即可。

以下是简单的示例说明:

  1. 传递一个字符串函数作为第三个参数:
setTimeout(function(a, b){
  console.log(a + b);
}, 1000, 1, 2);

在IE9及以下版本中,该代码会输出undefined,而在其他现代浏览器中将会输出3

为了兼容IE9及以下版本,我们可以改写为:

setTimeout("function(a, b){ console.log(a + b); } (1, 2)", 1000);

此时在所有浏览器上都将输出3

  1. 使用闭包传递参数:
(function(){
  var a = 1, b = 2;
  setTimeout(function(){
    console.log(a + b);
  }, 1000);
})();

该代码在所有现代浏览器和IE9及以上版本中均能正常工作。而在IE9及以下版本中,我们可以使用闭包来模拟传递参数:

(function(){
  var a = 1, b = 2;
  setTimeout(function(){
    eval("function(){ console.log(" + (a + b) + "); }");
  }, 1000);
})();

以上两种示例都是为了解决IE9及以下版本中setTimeoutsetInterval函数第三个以上参数的兼容性问题。建议在编写代码时使用第一种示例的方式,或者使用函数闭包方式传递参数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:仅IE不支持setTimeout/setInterval函数的第三个以上参数 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS判断字符串字节数并截取长度的方法

    下面我将详细讲解JS如何判断字符串字节数并截取长度的方法,包括以下几个步骤: 步骤一:获取字符串的字节数 在JS中,一个字符串的字节数并不是它的长度,而是它所占用的字节数,因为JS中的所有字符串都是基于Unicode编码的。因此,我们需要使用一个辅助函数来计算字符串的字节数。下面是一个简单的实现: function getByteLength(str) { …

    JavaScript 2023年5月28日
    00
  • javascript打印输出json实例

    让我来详细讲解一下“JavaScript 打印输出 JSON 实例”的完整攻略。 首先,我们需要了解 JSON 是什么。JSON 是一种轻量级的数据格式,其特点是易于阅读和编写。在 Web 开发中,常常使用 JSON 来传输数据。在 JavaScript 中,可以将一个 JSON 对象转换成字符串,也可以将一个字符串转换成 JSON 对象。 接着,我们需要了…

    JavaScript 2023年5月27日
    00
  • D3.js实现简洁实用的动态仪表盘的示例

    下面我将为您详细讲解“D3.js实现简洁实用的动态仪表盘的示例”的完整攻略。 1. 确定设计 在使用D3.js创建仪表盘之前,需要对仪表盘进行设计。 仪表盘可以包含以下元素:- 指示器(需要动态变化)- 舞台或背景- 刻度盘或表盘 2. 创建SVG容器 D3.js将仪表盘绘制到SVG容器中。首先,需要创建一个SVG元素,并设定其宽度和高度。 <div …

    JavaScript 2023年6月11日
    00
  • ES6新语法之解构实践指南

    ES6新语法之解构实践指南 什么是解构 解构是一种从数组或对象中提取数据的方式,它允许我们将属性或元素提取到不同的变量中。ES6中,我们可以通过解构来轻松地获取对象或数组中的属性或元素。 解构对象 解构一个对象意味着将对象的属性值复制到一个变量中。这是通过使用花括号和变量名称来完成的。 const person = { firstName: ‘John’, …

    JavaScript 2023年6月11日
    00
  • js实现一个简单的数字时钟效果

    下面是JS实现一个简单的数字时钟效果的攻略: HTML结构 首先需要在HTML中创建一个div,用来展现时钟。 <div id="clock"></div> CSS样式 然后还需要写一些CSS样式,让时钟展示的更加美观。 #clock { font-size: 48px; /*设置字号*/ font-family:…

    JavaScript 2023年5月27日
    00
  • 详解JavaScript中|单竖杠运算符的使用方法

    下面是对“详解JavaScript中|单竖杠运算符的使用方法”的完整攻略。 什么是“|”单竖杠运算符 在JavaScript中,“|”单竖杠运算符属于按位运算符之一。该运算符可将两个操作数转换成32位整数,并执行按位或操作。按位或操作返回一个32位的二进制数,每一位上的值都是将两个操作数的对应位进行或运算的结果。 单竖杠运算符在JavaScript中的应用 …

    JavaScript 2023年5月28日
    00
  • 微信小程序学习笔记之文件上传、下载操作图文详解

    微信小程序学习笔记之文件上传、下载操作图文详解 本文主要介绍了在微信小程序中进行文件上传和下载的操作,包括上传和下载的基本流程、代码实现的步骤以及示例演示等。 文件上传基本流程 文件上传的基本流程包括: 创建文件上传组件和触发上传事件。 选择要上传的文件。 获取上传文件的tempFilePath。 发送上传请求。 处理上传成功或上传失败的结果。 文件上传代码…

    JavaScript 2023年5月19日
    00
  • Javascript实现元素选择器功能

    实现元素选择器的功能,需要使用JavaScript中的DOM操作方法。以下是实现此功能的攻略: 1. getElementById()方法 使用 getElementById() 方法可以通过指定元素的 ID 获取该元素的引用。 例如: var element = document.getElementById("myId"); // 获…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部