我正在开发一个 javascript 菜单(使用 jQuery)。
例如,下面是项目对象的结构,我将传递给我的自定义函数,然后创建菜单。
var items = {
0: {
name: 'file',
submenu: {
0: {
name: 'open',
hasSubitems: true,
subitems: {
0: {
name: 'file',
hasSubitems: false,
callback: function() { alert('you opened a file!'); }
},
1: {
name: 'project'
hasSubitems: false,
callback: function() { alert('you opened a project!'); }
}
}
},
1: {
name: 'exit',
hasSubitems: false,
callback: function() { alert('you logged out!'); }
}
}
},
1: {
name: 'edit',
submenu: {
...
}
}
}
我希望能够将上述内容存储到数据库中,包括他们的预期回调。我打算创建一个界面来动态构建菜单等。
我意识到我可以创建一个 JSON 字符串并以这种方式存储它,但是回调函数呢?有人多次建议我不要使用 eval,那么人们可以通过哪些其他方式安全地将这些信息存储在数据库中,以便以后调用?