我正在尝试使用单击事件处理程序实现jQCloud字云。它要求我在JSON中传递一个JavaScript函数。在JSON中传递javascript函数
在C#中,我所做的动态JSON文本
foreach (var r in result)
{
sbChart.Append("{\"text\": \"" + r.Key + "\", \"weight\": " + r.Count().ToString() + ", ");
sbChart.Append("\"handlers\": { \"click\": \"function() { alert('You clicked " + r.Key + "');}\"}}, ");
}
if (sbChart.Length != 0)
{
returnString = "[" + sbChart.ToString().Substring(0, sbChart.Length - 2) + "]";
}
我通过Web方法返回此给JavaScript在我的代码是
var words = JSON.parse(strJSON);
$('#div').jQCloud(words);
的JSON产生是
[
{"text": "the", "weight": 111, "handlers": { "click": "function() { alert('You clicked the');}"}},
{"text": "in", "weight": 66, "handlers": { "click": "function() { alert('You clicked in');}"}}
]
但是,由于我的函数是一个字符串,它不会作为一个对象执行。如果我在函数声明之前和之后删除双引号,它会在解析过程中给出Invalid Character
错误。
请任何人都可以帮助我,我该如何使此警报工作?
你永远不应该需要传递一个函数这样。如果你觉得有必要,那么也许你应该重新评估你的整体设计。 –
非常感谢您的建议,我改变了我的方法:) – Hitesh