解决了,服务器端吃了我的{}。
我的HTML代码中包含此代码:
onclick="changes = {'a': 'b'};"
转换为
onclick="changes = ;"
我加载页面时。所以花括号和其间的一切都消失了。知道如何解决这个问题吗?最后,我想给一个匿名对象作为函数的输入:
onclick="dothis({'a': 'b', '1': '2'});"
答案 0 :(得分:4)
我建议通过让您的输入跟踪数据,但实际的绑定和执行分开来使您的代码更具语义性:
<div id="myDiv" data-changes="{'a':'b', '1':'2'}"></div>
document.getElementById('myDiv').onclick = function() {
var data = JSON.parse(this.getAttribute('data-changes'));
// here you should be able to say data.a, data.1, etc.
};
大多数现代浏览器都支持本机JSON方法:
Browser-native JSON support (window.JSON)
但是对于那些没有的人,您可以添加对JSON库的支持:
答案 1 :(得分:0)
您是否考虑过/您是否能够使用内联JavaScript?只需要一个外部JavaScript文件加载类似的东西(不是实际的代码,例如用途):
getElementById("myButton").click( function(){
dothis({'a':'b','1':'2'})
})
这样的东西(特别是当与库配对时)也可以避免在你想要运行该功能的每个项目中复制代码。