Я пытаюсь реализовать jQCloud слово облако с обработчиком события click. Это требует от меня функции javascript в JSON.Передача функции javascript в JSON
В 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) + "]";
}
я вернуть это через веб-метод 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