Javascript 解析未捕获的语法错误:意外标记>
我在Cordova应用程序上有一个转换base64图像中文本的功能。它工作正常,但在一些设备中,脚本上出现了意外的令牌错误 下面是函数:Javascript 解析未捕获的语法错误:意外标记>,javascript,android,jquery,cordova,Javascript,Android,Jquery,Cordova,我在Cordova应用程序上有一个转换base64图像中文本的功能。它工作正常,但在一些设备中,脚本上出现了意外的令牌错误 下面是函数: function socialShare(message, font) { var y = 12; var x = 18; var canvas = document.getElementById("receipt"); var context = canvas.getContext("2d"); // cal
function socialShare(message, font) {
var y = 12;
var x = 18;
var canvas = document.getElementById("receipt");
var context = canvas.getContext("2d");
// calcula a largura da string mais larga
context.font = font;
var maxStrWidth = message.map(e => {
return context.measureText(e).width;
}).sort((a, b) => {
return b - a;
});
// configura a largura do canvas dinamicamente
canvas.width = maxStrWidth[0] + 9;
canvas.height = x * message.length;
// seta a cor do background do canvas
context.fillStyle = "#ffffe6";
context.fillRect(0, 0, canvas.width, canvas.height);
// escreve o texto
context.font = font;
context.fillStyle = "#000";
message.forEach(e => {
context.fillText(e, 3, y);
y += x;
});
// gera a string base64
let base64 = canvas.toDataURL("image/jpeg", 1);
// chamada do plugin social share
window.plugins.socialsharing.share(
null,
'Comprovante de Aposta',
base64,
null
);
}
该错误在var maxStrWidth行上抛出。您认为它有什么问题吗?并非所有设备都支持ES6 arrow功能,尤其是对于使用旧chrome webview版本的旧android版本 如果您打算支持较旧的设备,那么最好坚持使用标准函数声明 在此进一步阅读:
这些设备似乎不支持胖箭头语法。尝试在该行上方的某个位置添加一个空的fat arrow函数,看看它是否在新行中出错。哪些设备/浏览器会失败?错误出现在许多不同的设备上,但它们大多是4.X.X,很少是5.5.1安卓。我正在用Chrome Inspect调试应用程序。我更改了标准声明:message.forEache=function{context.fillTexte,3,y;y+=x;};现在我得到:ReferenceError:invalid assignment left-side这是因为forEach函数的语法错误。e=函数应更改为函数e{},因此在函数e中,当前消息值为?message.foreachfunction{context.fillTexte,3,y;y+=x;};哦,我错了,错误在这里:var maxStrWidth=message.mape=function{return context.measurettexte.width;}.sorta,b=function{return b-a;};我能做什么?同样,你应该把e作为一个参数传入。e=函数应该是函数e{}