【发布时间】:2018-11-25 09:23:52
【问题描述】:
我正在做一个项目,我们为不同的部分使用了很多编码语言。
我已尝试尽可能简化问题,并提出以下建议 JSfiddle.
问题是,我有一个 JSON 字符串,我想将它传递给 JavaScript 函数。
如果我从 JavaScript 调用它,就可以了。但是当我用onmouseover 调用它时,HTML 会抛出错误
未捕获的 SyntaxError:无效或意外令牌
JavaScript 代码:
function test123(obj, e, lookupx){
console.log(lookupx);
}
test123(this, event, '{"mt:assetsys:assetuapr":{"assetmat":"material","assettag":"tag"}}');
HTML:
<div>
First check the console, direct calling with js string is ok.<br>
Then:<br>
<a href="#" onmouseover="test123(this, event, '{"mt:assetsys:assetuapr":
{"assetmat":"material","assettag":"tag"}}');">hover this
</a>
<br>
And an error occurs
</div>
有人能解释一下这两种情况有什么区别吗?
鼠标悬停vs
直接调用函数。
【问题讨论】:
-
转义内部
",例如\" -
因为在第二种情况下,JSON 字符串已经包含在双引号内(对于 onmouseover 属性),因此您需要转义 JSON 中的双引号,否则 onmouseover 属性将格式错误- 第一次涉及到与 JSON 相关的双引号时,它认为它是 onmouseover 属性的结尾,但事实并非如此。
-
当然,谢谢两位的澄清。
标签: javascript json function parameter-passing