即使使用 Polyfill,IE 也不支持 forEach。

2024-01-12

我已将 forEach polyfill 添加到 JavaScript 文件的顶部,但 Internet Explorer 仍然说它不支持该功能。

我基本上想循环 querySelector 的结果,但是我确实在脚本中的一些其他数组对象上使用了 forEach 。

这一切在 Chrome 上都运行良好。

// Production steps of ECMA-262, Edition 5, 15.4.4.18
// Reference: http://es5.github.io/#x15.4.4.18
if (!Array.prototype.forEach) {

  Array.prototype.forEach = function(callback/*, thisArg*/) {

    var T, k;
    if (this === null) {
      throw new TypeError('this is null or not defined');
    }
    var O = Object(this);
    var len = O.length >>> 0;
    if (typeof callback !== 'function') {
      throw new TypeError(callback + ' is not a function');
    }
    if (arguments.length > 1) {
      T = arguments[1];
    }
    k = 0;
    while (k < len) {
      var kValue;
      if (k in O) {
        kValue = O[k];
        callback.call(T, kValue, k, O);
      }
      k++;
    }
  };
}

(function() {

  var instance = null,
      container;

  // Constructor
  this.MarvLightbox = function() {
    // Initialise plugin
    this.init();
  };

  // Initilise the plugin
  MarvLightbox.prototype.init = function() {

    document.querySelectorAll('[data-click]').forEach(function(e) {
      e.addEventListener('click', [clickevent]);
    });

  };

}());

添加 polyfill 不应该解决 IE 的这个问题吗?


另一种支持 IE9+ 的方法forEach:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
    <span class="demo">See me.</span>
    <span class="demo">See me.</span>
    <span class="demo">See me.</span>
    <span class="demo">See me.</span>
    <script>
        // Function to make IE9+ support forEach:
        if (window.NodeList && !NodeList.prototype.forEach) {
            NodeList.prototype.forEach = Array.prototype.forEach;
        }

        // Works with Nodelists (i.e. HTMLcollections):
        var demos = document.querySelectorAll('.demo');
        demos.forEach(function(item) {
            item.style.color = 'red';
        });

        // As well as with Arrays:
        var gherkins = ['gher1', 'gher2', 'gher3'];
        gherkins.forEach(function(item) {
            console.log(item);
        });
    </script>
</body>
</html>

在IE11中测试,根据其模拟功能,在10和9(不是8)中也可以工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

即使使用 Polyfill,IE 也不支持 forEach。 的相关文章

  • 从 thymeleaf 获取数据到模态引导程序、jquery

    我正在尝试获取模态视图的 id 这是为了更新 onclick 元素 但我找不到方法 知道如何为 boostrap 5 完成此操作 或我可以用其他方法吗 谢谢 tr a inactivate a div class modal fade mo
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • 使用 Angular 下载具有动态 src 的脚本

    Angular 提供了通过动态名称动态加载模板的方法ng include 该部分中的内联 JS 和 CSS 可以正常加载 但没有一个好的方法来下载带有动态 url 的脚本 我们需要下载脚本 相对于调用它们的 html 部分的路径 即我们有一
  • Google App Engine:修改云运行环境

    我正在尝试部署一个使用自定义 Node js 服务器的 Next js 应用程序 我想将自定义构建变量注入应用程序 next config js const NODE ENV process env NODE ENV const envTy
  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • 通过 CDN 使用 Dojo 时如何加载自定义 AMD 模块?

    我正在使用 google 的 CDN 并尝试使用他们的加载程序加载我自己的 AMD 模块 我知道我做错了什么 但我被困住了 有任何想法吗
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • Angular 2+ 安全性;保护服务器上的延迟加载模块

    我有一个 Angular 2 应用程序 用户可以在其中输入个人数据 该数据在应用程序的另一部分进行分析 该部分仅适用于具有特定权限的人员 问题是我们不想让未经授权的人知道how我们正在分析这些数据 因此 如果他们能够在应用程序中查看模板 那
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 在 vue.js 中访问数组对象属性

    给定以下数组vue js packageMaps Object packageMap 0 Object Id 16 PackageType flag list ProductCode F BannerBase packageMap 1 Ob
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中

随机推荐

  • MySql 查看性能 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如果您走上使用视图的道路 如何才能确保良好的性能 或者最好不要首先使用视图 而只是将等效项合并到您的 select 语句中 这取决于
  • UITableViewCelldrawInRect iOS7

    您好 我正在尝试使用以下代码在 iOS 7 中的 UITableViewCell 中绘制字符串 void drawRect CGRect rect super drawRect rect CGRect playerNameRect CGRe
  • 我可以严格评估 Java 中存储为字符串的布尔表达式吗?

    我希望能够计算存储为字符串的布尔表达式 如下所示 hello goodbye 100 lt 101 我知道已经有很多这样的问题了 但我问这个问题是因为我已经尝试过这个问题最常见的答案 豆壳 http www beanshell org 并且
  • 如何在添加 endIgnoringInteractionEvents 之前匹配 beginIgnoringInteractionEvents

    我正在使用这两个功能 UIApplication sharedApplication beginIgnoringInteractionEvents and UIApplication sharedApplication endIgnorin
  • BigQuery 连接三个表

    我正在尝试连接 BigQuery 中的三个表 表 1 有一个事件的记录 即每一行是一条记录 表 2 有第二个事件的记录 表 3 有类别名称 我想要生成一个最终表 其中包含按类别和设备平台划分的表 1 和表 2 的计数 但是 每次我运行此命令
  • 将烧瓶 send_file (ajax 响应)中的图像显示到图像标记中

    如何显示来自烧瓶 send file ajax 响应的图像 HTML 文件
  • sqlite 列中的条件值

    我的 sqlite 表中有两个整数列 a and b 我需要创建第三列 c 其中应该包含Y if a b mod 2 1 or N如果前面的条件不满足 我不确定如何在查询中使用条件值定义这样的列 您可以在查询中轻松执行此操作 select
  • 如何在 gdb 中 fork() ed 的不同进程之间切换?

    我正在调试这样一个多进程应用程序 我怎样才能在fork 编辑流程 您可以让子进程进入睡眠状态 然后将一个新的 GDB 实例附加到它 这GDB用户手册 http sourceware org gdb current onlinedocs gd
  • 在 SSRS 查询字符串中传递多值参数的值

    我有两个使用 SSRS 2005 构建的报告 第一个报告设置为在单击特定字段时导航到第二个报告 我在文本框的 跳转到 URL 属性中使用类似于以下内容的表达式 javascript void window open http server
  • 如何下载需要用户名和密码的网页?

    例如 我想在插入用户名和密码后下载此页面 http forum ubuntu it org 我尝试过 wget 但不起作用 有 python 的解决方案吗 您可以使用这些用户名和密码进行测试 username johnconnor pass
  • GetView 与。自定义 CursorAdapter 中的 BindView?

    所以我正在看这个视频http www youtube com watch v N6YdwzAvwOA http www youtube com watch v N6YdwzAvwOARomain Guy 正在展示如何使用getView 方法
  • 创建从 C 到 C# 的混合模式 C++ 桥接器?

    我希望有人能帮助我解决这个问题 我主要是一名 C 开发人员 所以我的 C和C 技能很差 我有一个本机 C dll 它是一个插件 更大的应用 我在Linux上为Windows交叉编译这个dll 使用海湾合作委员会 在本机 dll 中 当我创建
  • 资产文件夹中的 Pdf 文件无法在第三方应用程序中打开

    你好 我是 android 新手 我有一些 PDF 文件存在于该路径中asset pdf example pdf 当我尝试使用此代码创建 PDF 文件时 Intent intent new Intent Intent ACTION VIEW
  • 如何动态构建 Perl 正则表达式?

    我有一个 Perl 脚本 它使用 File Next files 遍历目录层次结构 它只会返回以 avi flv mp3 mp4 和 wmv 结尾的脚本文件 它还会跳过以下子目录 svn 和任何以 frames 结尾的子目录 这是在file
  • 带 PyGTK 崩溃的多线程 Gstreamer (xcb_xlib_threads_sequence_lost)

    我知道不应该从其他线程更新 UIgtk 或面临后果 但我不确定在使用时如何避免这种情况gstreamer 我的应用程序在视频流初始化期间有时会崩溃 并出现以下投诉 xcb Unknown sequence number while proc
  • 处理对象字段验证的最佳方法 => Either / Try (scala 2.10) / ValidationNEL (scalaz)

    让我们假设一个使用构建器模式构造的对象 这个构建器模式将包含一个build方法侧重于字段验证 然后转换为目标类型 该验证可以使用以下方式实现 Either FailureObject TargetObject type Try Target
  • CSS 冲突样式表

    我有两个样式表 它们在几个方面相互冲突 因为我使用 5 个 6 个 有时甚至 9 个或 10 个完整的插件 每个插件都有三四个样式表 以及我自己的样式表 所以到处都会出现冲突 解决这个问题的最佳方法是什么 是进入并修改所有插件的选择器的唯一
  • Delayed_jobs 保存已完成的作业

    是否有一个参数可以传递给delayed job 以防止它从delayed jobs 表中删除已完成的作业 有点像destroy failed jobs但对于已完成的工作 有任何想法吗 扩展 jefflunt的答案 我添加了一个迁移来创建一个
  • 检查文本框是否为空

    我有一个文本框 我想检查它是否为空 哪种方式更好 if TextBox Text Length 0 or if TextBox Text 你应该使用String IsNullOrEmpty https msdn microsoft com
  • 即使使用 Polyfill,IE 也不支持 forEach。

    我已将 forEach polyfill 添加到 JavaScript 文件的顶部 但 Internet Explorer 仍然说它不支持该功能 我基本上想循环 querySelector 的结果 但是我确实在脚本中的一些其他数组对象上使用