通过 ajax 传递包含函数的 json2html 问题
issue passing json2html containing function thru ajax
我正在尝试将 XHR 请求的 responseText 分配给一个对象变量,然后我可以通过 json2html 传递该对象变量以创建表单。我遇到的问题是我传递的 json 有一个函数分配给表单上某个项目的 onclick 事件。这使我无法使用 JSON.parse() 转换 responseText 字符串,因为它在函数调用时出错。我知道 json 如果我能够将它作为一个对象来调用,它将起作用,但它不会让我创建对象;我知道我可以使用 ready() 函数,但更愿意通过 json2html 调用传递该函数。我想这是我忽略的简单事情,但需要一些帮助来弄清楚如何将字符串转换为可用格式。例如:
//works fine
var x= {
"<>":"div",
"class":"",
"text":"test",
"onclick": function(
{
console.log("click")
}
};
$('#content').json2html({},x);
//does not work
x=$.ajax({url:u});
x.complete(function(){
//responseText:
{
"<>":"div",
"class":"btn p-3 bg-white test",
"text":"test",
"onclick": function(){console.log("click")}
}
//.responseText
$('#content').json2html({},x["responseText"]);
});
//.does not work
首先,您的 responseText 就是那个文本,确保您先 json 将文本解析为 json 对象,然后再将其发送到 json2html。
其次,您将无法通过ajax传输onclick功能,这是需要在客户端添加的东西。
我正在尝试将 XHR 请求的 responseText 分配给一个对象变量,然后我可以通过 json2html 传递该对象变量以创建表单。我遇到的问题是我传递的 json 有一个函数分配给表单上某个项目的 onclick 事件。这使我无法使用 JSON.parse() 转换 responseText 字符串,因为它在函数调用时出错。我知道 json 如果我能够将它作为一个对象来调用,它将起作用,但它不会让我创建对象;我知道我可以使用 ready() 函数,但更愿意通过 json2html 调用传递该函数。我想这是我忽略的简单事情,但需要一些帮助来弄清楚如何将字符串转换为可用格式。例如:
//works fine
var x= {
"<>":"div",
"class":"",
"text":"test",
"onclick": function(
{
console.log("click")
}
};
$('#content').json2html({},x);
//does not work
x=$.ajax({url:u});
x.complete(function(){
//responseText:
{
"<>":"div",
"class":"btn p-3 bg-white test",
"text":"test",
"onclick": function(){console.log("click")}
}
//.responseText
$('#content').json2html({},x["responseText"]);
});
//.does not work
首先,您的 responseText 就是那个文本,确保您先 json 将文本解析为 json 对象,然后再将其发送到 json2html。
其次,您将无法通过ajax传输onclick功能,这是需要在客户端添加的东西。