我试图在我的javascript中删除我的几个eval
的代码,但我不确定实现我的最佳方式试图做。
我有一个"过滤器形式"在我的一堆页面上,附加了一些JS,根据用户的操作重新加载部分页面。
不同的页面需要不同的操作。
所以我的解决方案(我想到的是年前......)是
<form name="callback_loadCalendar">
<form name="callback_loadNames">
等
这个可怕的JS(附加到onchange事件等)然后调用相关函数:
if (f.getAttribute('name') && f.getAttribute('name').indexOf('callback') === 0)
eval(f.getAttribute('name').substr(9)+'()');
E.g。这将分别调用loadCalendar()
和loadNames()
。
我应该做什么呢?
谢谢!
答案 0 :(得分:2)
如果函数在全局范围内,则可以在全局范围内使用括号表示法来访问函数引用。
window[f.getAttribute('name').substr(9)]();