我是Javascript的新手。我正在编写一个Java代码,它在内部编写代码来调用预定义的Javascript方法。
我将Javascript方法定义为:
function myfunction(url, params) {
$.post(url, params);
}
这个发送params是一个JSON到URL作为帖子(我想)。
我的Java代码动态生成HTML,内部生成类似的内容:
<iframe onLoad="myfunction(myinternal, {"system":"abcdef", "token": "12345"})"> ......
然而,这无法运行。页面检查给了我:
SyntaxError: invalid property id
myfunction(myinternal, {
^
我在这里做错了什么?
非常感谢
答案 0 :(得分:7)
您的HTML有语法错误。应该更像这样:
<iframe onLoad="myfunction(myinternal, {\"system\":\"abcdef\", \"token\": \"12345\"})">
或用单引号括起来:
<iframe onLoad='myfunction(myinternal, {"system":"abcdef", "token": "12345"})'>
编辑:(按照第一条评论)
<iframe onLoad="myfunction(myinternal, {"system":"abcdef", "token": "12345"})">
答案 1 :(得分:2)
您需要在{json对象中escape引号。
答案 2 :(得分:1)
您在JSON中使用了双引号"
。它们被HTML解析器解释为onLoad
属性的结尾。
尝试使用单引号,如下所示:
<iframe onLoad="myfunction(myinternal, {'system':'abcdef', 'token': '12345'})">