我正在尝试将纯JSON字符串定义为Javascript函数中的参数。
以下是我想要定义它的方式:
<a href="#" onclick="js_func('arg_1', 'arg_2', '{"key": "value"}'); return false">Link</a>
Firebug给了我一个错误警告:未终止的字符串文字,即使我在JSON字符串上转义双引号也是如此。
我该如何解决这个问题?
感谢。
答案 0 :(得分:4)
在评估您的JSON字符串之前,使用"
作为双引号,然后在(感谢演示马修,我用问题的例子更新了你的小提琴:)js_func()
中,用实际双引号字符("
)替换它们。
答案 1 :(得分:1)
只需将链接定义为<a href="#" onclick="js_func('arg_1', 'arg_2', {key: 'value1'}); return false;">Link</a>
即可。 JSON是有效的JavaScript,你不需要将它包含在内。
我还建议使用EventListener(element.addEventListener()
),这使得html更清晰,并且会将此问题减少为无效。
答案 2 :(得分:-1)
你要么试图传递已解析的对象,要么传递一个字符串
Object: onclick="js_func(arg_1, arg_2, {'key': 'value'});"
String: on_click="js_func('arg_1', 'arg_2', '{\"key\": \"value\"}'); return false"
我所有方便测试的都是firebug解释器,但两者都适合我。
>>>>'{\"key\": \"value\"}'
"{"key": "value"}"
>>>> {'key': 'value'}
Object {key="value"}
(我不是要假设arg_1
和arg_2
是字符串还是变量名,并不重要。只是做与JSON相同的事情)