在 chrome 中出现“Uncaught SyntaxError: Invalid or unexpected token”错误,我将“url”变量连接到脚本元素 src 属性。在控制台中,错误从第二个连接运算符开始,一直到下一行中结束脚本标记的末尾。
var script = '<script src='+url+'></script>'
脚本变量在回调函数中定义,我在其中根据单击的按钮动态设置脚本元素的 src url。在触发回调的事件被触发之前,页面加载时发生错误。所以当错误发生时函数没有被调用并且“url”包含 undefined variable 。
function update(){
var clicked = $(this).attr("id");
var parameters = getParameters(clicked);
var defaultField = parameters[0];
var defaultUnits = parameters[1];
var url= '"https://....jsembed=true&timeControl=true&fieldControl=true&defaultField='+defaultField+'&defaultUnits='+defaultUnits+'"';
var script = '<script src='+url+'></script>';
var container = document.getElementById("container")
container.innerHTML=script;
};
最佳答案
问题是当浏览器看到</script>
它将此解释为脚本 block 的结束标记。在这种情况下,这意味着在使语法无效的字符串中间终止脚本 block 。
它是否在 JS 字符串中并不重要,HTML 解析器具有绝对优先级。
您可以通过将该行更改为以下内容来轻松解决此问题:
var script = '<script src='+url+'></s'+'cript>';
关于javascript - "Uncaught SyntaxError: Invalid or unexpected token"连接变量和 HTML 脚本元素 src 属性时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46692484/