已解决,服务器端吃了我的 {}。
我的 HTML 中有这段代码:
onclick="changes = {'a': 'b'};"
这转变为
onclick="changes = ;"
当我加载页面时。所以花括号和中间的一切都消失了。知道如何解决这个问题吗?最终,我想给一个匿名对象作为函数的输入:
onclick="dothis({'a': 'b', '1': '2'});"
已解决,服务器端吃了我的 {}。
我的 HTML 中有这段代码:
onclick="changes = {'a': 'b'};"
这转变为
onclick="changes = ;"
当我加载页面时。所以花括号和中间的一切都消失了。知道如何解决这个问题吗?最终,我想给一个匿名对象作为函数的输入:
onclick="dothis({'a': 'b', '1': '2'});"
我建议通过让您的输入跟踪数据来使您的代码更具语义,但实际的绑定和执行是分开的:
<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 方法:
但对于那些不这样做的人,您可以使用 JSON 库添加支持:
您是否考虑过/是否能够不使用内联 JavaScript?只需有一个外部 JavaScript 文件,该文件会加载类似的内容(例如,不是实际代码):
getElementById("myButton").click( function(){
dothis({'a':'b','1':'2'})
})
类似的东西(尤其是与库配对时)还可以使您不必在要运行该功能的每个项目中复制代码。