Javascript语法错误:意外的令牌'}'
Javascript SyntaxError: Unexpected token '}'
我有以下简单的代码,但由于某种原因,它会出现意外的令牌"}"错误,我不完全确定原因。我有以下代码来生成按钮
var OverlayMessage = ("Do you want to test these settings? <br> <h6>" + protocol + ":" + systemcodeSend + "-" + unitcode + " sending " + state + '</h6> <br> <a id="btnGreen" onclick="checkIfSettingsWork("' + protocol +'", "'+ systemcodeSend +'", "'+ unitcode +'", "'+ state +'");">Yes</a> <a id="btnRed" onclick="toggleVisibility(''overlayAddDevice'')">No</a>');
console.log(OverlayMessage);
overlayMessage(OverlayMessage);
console.log的输出如下
<a id="btnGreen" onclick="checkIfSettingsWork("pollin", "31", "14", "on");">Yes</a>
奇怪的是,如果我从调试器运行,它可以正常工作,没有错误。然而,当通过onclick事件运行时,它会清除Unexpected token错误。
函数checkIfSettingsWork甚至没有运行,我通过让它登录到控制台来检查这一点,当onclick事件运行时,它不会返回任何内容,但当我通过调试器运行以下javascript时,它可以工作。
checkIfSettingsWork("pollin", "31", "14", "on");
这是checkIfSettingsWork函数。
function checkIfSettingsWork(protocol, systemcodeSend, unitcode, state) {
console.log(protocol + systemcodeSend + unitcode + state)
}
这是无效的html:
<a id="btnGreen" onclick="checkIfSettingsWork("pollin", "31", "14", "on");">Yes</a>
"
字符提前结束了onclick
属性,因此浏览器最终将其解释为onclick="checkIfSettingsWork("
。
将其更改为以下变通方法:
<a id="btnGreen" onclick="checkIfSettingsWork('pollin', '31', '14', 'on')">Yes</a>
有效的synatax将是
<a id="btnGreen" onclick="checkIfSettingsWork('pollin', '31', '14', 'on')">Yes</a>
这里有很多上下文,我认为它们需要分开。您正试图在这个声明中创建文本、HTML和JavaScript。还有你混合的单引号和双引号。在你的串联中。你可以两者都用,但它们必须匹配。
把所有这些都集中在一行是不安全的。尤其是onClick功能。我不想为HTML创建模板,直接为JavaScript函数创建模板,然后将变量输入到函数中。
函数中的参数也不需要任何引号,只需输入变量即可。
CheckIfSettingsWork(协议、系统代码发送、单元代码、状态)
您犯了一个低级错误。
这与onclick="checkIfSettingsWork("pollin", "31", "14", "on");"
一样无效
你需要修复"到"。
另一件事是,我认为当您声明OverlayMessage
时,只是我的建议,也许您需要以统一的方式使用"
和'
字符。
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- 未捕获的语法错误:意外的令牌,
- data.php:1未捕获的语法错误:意外的令牌:
- 错误:[$parse:syntax]语法错误:令牌''是意外的令牌
- 未捕获的语法错误:意外的令牌非法?看起来不错
- AngularJS $http GET 请求到本地 JSON 文件返回语法错误:意外令牌]
- 未捕获的语法错误:意外的令牌 = (Chrome)
- Sencha 2.0 和 Codeigniter RESTful API 生成未捕获的语法错误:意外令牌:
- “语法错误:意外的令牌)”在 javascript 调用中,当 eval(value) 为空时
- 未捕获的语法错误:使用 iFrame 时出现意外的令牌 }
- HTML 无法识别我要求它运行的 javascript 文件,语法错误:意外的令牌“<”(匿名函数)script.js:
- 未捕获的语法错误:意外的令牌 if
- 语法错误: 意外的令牌其他
- Chrome vs JS:未捕获的语法错误:意外的令牌)
- 未捕获的语法错误:意外的令牌)",
- 未知的“未捕获的语法错误:意外的令牌<”
- JavaScript JSONP请求错误--未捕获的语法错误:意外的令牌:
- Ajax 帖子未捕获语法错误:意外令牌非法
- Javascript JSON.parse:未捕获的语法错误:意外的令牌N
- 使用Ext.data.ScriptTagProxy时出现意外的令牌语法错误