javascript - Safari 引用错误 : Can't find variable: Set

标签 javascript jquery css safari

我从 Safari 浏览器收到 Safari ReferenceError: Can't find variable: Set 错误。我已经检查了其他浏览器,但我没有收到任何此错误,所有代码对我来说都可以正常工作。

有没有人可以帮我解决这里的问题以及在所有浏览器中运行我的代码的解决方案是什么?

完整 Demo

问题行

 var charactersX = new Set([
      0,
      32, // space
      13 // enter
      // add other punctuation symbols or keys
   ]);
  // Convert characters to charCode
   function toCharCodeX(char) {
      return char.charCodeAt(0);
   }

   var forbiddenCharactersX = new Set([
      toCharCodeX("_"),
      toCharCodeX("-"),
      toCharCodeX("?"),
      toCharCodeX("*"),
      toCharCodeX("\\"),
      toCharCodeX("/"),
      toCharCodeX("("),
      toCharCodeX(")"),
      toCharCodeX("="),
      toCharCodeX("&"),
      toCharCodeX("%"),
      toCharCodeX("+"),
      toCharCodeX("^"),
      toCharCodeX("#"),
      toCharCodeX("'"),
      toCharCodeX("<"),
      toCharCodeX("|"),
      toCharCodeX(">"),
      toCharCodeX("."),
      toCharCodeX(","),
      toCharCodeX(";")
   ]);

最佳答案

改用数组

var charactersX = [
  0,
  32, // space
  13 // enter
  // add other punctuation symbols or keys
];

并替换 .has(),例如这里:

if (charactersX.has(code))

if (charactersX.indexOf(code) > -1) 

if (forbiddenCharactersX.has(code))

还有 indexOf > -1...

关于javascript - Safari 引用错误 : Can't find variable: Set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45312402/

相关文章:

jquery - 将 jquery 与脚本捆绑在一起更快还是使用公共(public) CDN 更快?

jquery - 在输入字段中设置文本的问题

javascript - 如何在按住鼠标时保持光标样式相同?

javascript - 如何在 ExtJs4 中动态设置网格 CheckBox 选择模型?

javascript - 在 Google map 中动态更改信息窗口的内容

javascript - 缺少 '()' 调用构造函数

html - CSS 在头部添加一个 id

jquery - 修复了由页脚向上推的侧边栏

javascript - 浏览器默认填充

javascript - (JQuery) 通过按键移动元素?