You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript报错Uncaught SyntaxError: Unexpected end of input问题排查

错误原因及修复方案

你的语法错误出现在第三行,问题是混淆了模板字符串(反引号`)和普通字符串拼接的语法:

你当前的写法用反引号包裹整个字符串,但里面错误地混入了' + html + '这种普通字符串拼接代码,这不仅会导致变量html无法被正确插入,还会让JavaScript解析器无法识别模板字符串的闭合位置,从而抛出Uncaught SyntaxError: Unexpected end of input错误。

另外还有一个隐性问题:你使用了<、>这类HTML转义字符,这会导致生成的HTML文件里显示转义后的文本(比如<!DOCTYPE html>),而非正确的HTML标签结构。


修复后的代码

方案一:使用模板字符串(推荐)

模板字符串支持${变量}的方式直接插入内容,写法更简洁:

$('#saveHTML').click(function() {
    var html = $('#editor').val();
    // 用模板字符串插入变量,使用真实HTML标签而非转义字符
    html = `<!DOCTYPE html><html><head><title>HTML File</title></head><body>${html}</body></html>`;
    var filename = Math.random().toString(36).substr(2, 9);
    var tmpElement = document.createElement('a');
    tmpElement.download = filename + '.html';
    tmpElement.href = 'data:text/html;charset=utf-8,' + encodeURIComponent(html);
    tmpElement.click();
    document.body.removeChild(tmpElement);
    alert('HTML file saved successfully!');
});

方案二:使用普通字符串拼接

如果习惯传统拼接方式,把反引号换成单引号即可:

$('#saveHTML').click(function() {
    var html = $('#editor').val();
    // 普通字符串拼接,使用真实HTML标签
    html = '<!DOCTYPE html><html><head><title>HTML File</title></head><body>' + html + '</body></html>';
    var filename = Math.random().toString(36).substr(2, 9);
    var tmpElement = document.createElement('a');
    tmpElement.download = filename + '.html';
    tmpElement.href = 'data:text/html;charset=utf-8,' + encodeURIComponent(html);
    tmpElement.click();
    document.body.removeChild(tmpElement);
    alert('HTML file saved successfully!');
});

内容的提问来源于stack exchange,提问作者Mr.M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 13:05:17