Safari ReferenceError:无法找到变量:Set

时间:2017-07-25 19:56:05

标签: 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(";")
   ]);

1 个答案:

答案 0 :(得分:1)

使用数组

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 ......