javascript - "Uncaught SyntaxError: Invalid or unexpected token"连接变量和 HTML 脚本元素 src 属性时

标签 javascript html callback concatenation

在 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/

相关文章:

javascript - 使用 jquery 加载一系列图像

javascript - 将 2 个 ajax 调用合并为 1 个回调

javascript - 使用匿名函数和存储在变量中的函数作为回调参数 JavaScript

javascript - Discord.js : reaction. message.guild.members.find 不是函数

javascript - 将字符串的第一个字符复制到另一个 div jquery 或 javascript

jquery - 在不更改 HTML 的情况下将文本移动到选项卡底部

javascript - 如何制作多个文本叠加层

javascript - 悬停时更改按钮上的图像源

c# - 如何在 ASP.NET MVC 中创建 Webhook?

javascript - 激活使用 MooTool 的扩展元素创建的 HTML 元素的事件处理程序