我在IE中遇到语法错误,但在Chrome中没有

时间:2016-06-11 22:39:15

标签: javascript cookies

所以我有这个代码(一个函数)在Google Chrome / Fire Fox中有效,但在IE中没有。如果我对这一行进行评论,那么一切都运行良好,除了这条线是至关重要的。

我有一个名为ReadCookie的函数,它基本上只将cookie存储到名为cookiearray的数组中。

function ReadCookie() {

var allcookies = document.cookie; //variable called "allcookies" stores all the cookies.
cookiearray = allcookies.split(';').map(c => c.split('=')[1]); //cookiearray is an array that has all the values as strings.

}

IE说第4行不正确cookiearray = allcookies.split(';').map(c => c.split('=')[1]);但我不知道为什么。

谢谢!

3 个答案:

答案 0 :(得分:4)

Arrow functions(如c => c.split('=')[1])是ES6中的新功能。 Chrome支持它们。 Internet Explorer没有。

答案 1 :(得分:3)

我相信这是一张ECMA脚本6 thing与您使用地图的方式。

所以你可以这样写:

cookiearray = allcookies.split(';').map(function (c) {
  return c.split('=')[1];
}); //cookiearray is an array that has all the values as strings.

答案 2 :(得分:0)

我实现的解决方案如下

  1. 转到:https://babeljs.io/repl

  2. 粘贴代码,然后选择es2015。

  3. 如果您使用的是 forEach (在IE中也不支持),请在新代码中粘贴以下内容:

    if(window.NodeList &&!NodeList.prototype.forEach){ NodeList.prototype.forEach = Array.prototype.forEach; }

  4. 使用 indexOf 代替 includes