我遇到的问题是这个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了,已经在论坛上看过了,问题经常出现,遗憾的是我还没有找到合适的解决方案。
提前谢谢你 最好的问候
答案 0 :(得分:3)
箭头功能()=> {}是es6功能,已经支持firefox和chrome。但safari旧版本没有。有关详细信息,请查看http://kangax.github.io/compat-table/es6/。
答案 1 :(得分:1)
Safari 5.1真的很糟糕!!!
示例未使用=>
加载var t=w.map(v => String.fromCharCode(v));
替换需要付费
var t=w.map(function(v){return String.fromCharCode(v)});
要使脚本在所有浏览器上都能正常工作,请避免
=>
代替function () {}
function (param = x) {}
,更喜欢function (param) {if (param == 'undefined') {param = x;}}
let
并改用var
。答案 2 :(得分:0)
问题出在es6中的箭头函数语法上,正如朱利(Jerry Zhu)已经提到过的。
要支持较旧的浏览器,您需要将“ response => {”替换为“ function(response){”,还要将“ setTimeout(()=> {”替换为“ setTimeout(function(){”)。
答案 3 :(得分:0)
建议您在所有浏览器中保持安静...
避免使用VAR => RESULT VAR
,建议使用function (VAR) {return RESULT VAR;}
请不要在代码中使用带有以下值的参数:function (VAR = DEFAULTVALUE) {}
使用function (VAR) {if (VAR == "undefined") VAR = DEFAULTVALUE;}
要获取对象:document.getelementByID
要指定未初始化的属性,请选择Object.setAttribute (property, value)
而不是Object.property = value
。这可能会导致错误或不当行为。
某些样式属性只能在设置它们后才能使用,尤其是CSS3。只要您尊重JavaScript的用法,JavaScript就会接受与CSS相同的东西。
this.Ypos = document.body.scrollTop + ((! this.IE)? e.pageY: (window.event.y));
this.Xpos = document.body.scrollLeft + ((! this.IE)? e.pageX: (window.event.x));
如果协调智能手机的事件page.X为:Event.changedTouches[e.changedTouches.length-1].pageX
;
Object.appendChild (mebox)
我今年53岁,在互联网上工作了35年,从那时起,一切都没有真正改变。