JavaScript Safari - SyntaxError:意外的标记'>'

问题描述 投票:0回答:4

我有一个问题,这个JavaScript代码段在Firefox / Chrome中运行没有任何问题,Safari我得到错误:“SyntaxError:Unexpected token'>'”。

这是代码:

window.onclick = (test) => {
  const googleWindow = window.open();
  fakeAjax(response => {
    googleWindow.location.replace(`https://google.com?q=${response}`);
  });
};

function fakeAjax(callback) {
  setTimeout(() => {
    callback('example');
  }, 1);
}

我已经google了,已经在论坛上看过,问题经常出现,遗憾的是我还没有找到合适的解决方案。

提前谢谢你好问候

javascript safari syntax-error
4个回答
3
投票

箭头函数()=> {}是es6功能,已经支持firefox和chrome。但safari旧版本没有。请查看http://kangax.github.io/compat-table/es6/以获取更多信息。


2
投票

Safari 5.1非常糟糕!

示例它不会加载=>

var t=w.map(v => String.fromCharCode(v));

更换它将负责

var t=w.map(function(v){return String.fromCharCode(v)});

要使脚本适用于所有浏览器,请避免

  1. =>而不是function () {}
  2. function (param = x) {},更喜欢function (param) {if (param == 'undefined') {param = x;}}
  3. let并使用var代替。

0
投票

问题是来自es6的箭头函数语法,正如Jerry Zhu已经提到的那样。

要支持旧版浏览器,您需要将“response => {”替换为“function(response){”,并将“setTimeout(()=> {”替换为“setTimeout(function(){”。


0
投票

建议您安静地使用所有浏览器......

  1. 避免使用VAR => RESULT VAR,更喜欢function (VAR) {return RESULT VAR;}
  2. 切勿在代码中使用以下值的参数:function (VAR = DEFAULTVALUE) {}使用function (VAR) {if (VAR == "undefined") VAR = DEFAULTVALUE;}
  3. 获得一个对象:document.getelementByID
  4. 要指定未初始化的属性,请选择Object.setAttribute (property, value)而不是Object.property = value。这可能导致错误或不当行为。

某些样式属性只能在设置时使用,尤其是CSS3。如果你尊重它的用法,Javascript接受与CSS相同的东西。

  1. 从Netscape X和IE或其他浏览器Opéra,FireFox,Apple X等获取DOM坐标浏览器......

this.Ypos = document.body.scrollTop + ((! this.IE)? e.pageY: (window.event.y)); this.Xpos = document.body.scrollLeft + ((! this.IE)? e.pageX: (window.event.x));如果坐标智能手机事件页面.X是:Event.changedTouches[e.changedTouches.length-1].pageX;

  1. 要在文档中打印对象:Object.appendChild (mebox)

我53岁,我已经在互联网上工作了35年,从那以后一切都没有真正改变。

© www.soinside.com 2019 - 2024. All rights reserved.