我正在开发一个Facebook应用程序,现在都是我的寂寞.我正试图在onclick事件上进行javascript调用.在这个onclick事件中,我正在根据被链接的项填充一些参数(来自php中的服务器端).我正在插入一些JSON和其他一些带有时髦角色的东西.
Facebook期望锚的所有属性字段都是严格的字母数字.没有引号,感叹号,0-9a-Z_以外的任何内容.所以当用户点击该链接时,我想要传递给我的javascript函数(例如JSON)的参数barfs.
所以我想,为什么我不使用我的模板系统来自动生成javascript?对于我想要生成的每个链接,我生成一个唯一的javascript函数(DoItX,其中X是此页面的唯一整数).然后我不会尝试通过onclick将参数传递给我的javascript函数,而是将我的参数作为DoX的局部变量插入.在链接"X"上我只说onclick ="DoX()".
所以我这样做了,中提琴就可以了!(这也有助于我避免引用逃离地狱的声明).但我觉得icky.
我的问题是,我疯了吗?有更简单的方法吗?我理解某些人能够改变我的模板化局部变量的含义,即:
var local = {TEMPLATED FIELD};
用分号插入某个东西,向客户端插入任意javascript.(而且我正在尝试编写代码以使其偏执).
什么时候从服务器生成javascript是否正常(是否可以)?我应该注意什么/最佳实践?
根据您的应用程序,使用模板语言生成JavaScript可以节省大量时间,但需要注意的是陷阱.最严重的一点是,当你没有完整的模板堆栈时,很难测试你的JavaScript.
另一个主要缺陷是尝试将JavaScript逻辑"抽象"到某些更高级别的类别变得很诱人.通常这表明你将在项目中剃掉牦牛.使用JavaScript登录JavaScript.
从您给出的一点点信息来看,您的解决方案似乎是明智的.