我想从服务器端JS向客户端js传递jQuery命令(以字符串的形式)。这允许我从服务器端修改客户端DOM。
功能:
$("textArea").attr("disabled","true");
我想做什么:
$['$("textArea").attr("disabled","true")']();
引发错误。想法?
答案 0 :(得分:11)
您可以在客户端使用eval-function:
这会立即执行你的javascript:
eval('$("textArea").attr("disabled","true")');
但是,正如评论中所说的那样,要小心你所做的事情,因为这是一种非常粗暴的方法。
另外,在安全性方面,你并没有真正获得任何东西,因为仍然可以打开开发工具并删除已禁用的属性
答案 1 :(得分:2)
或者,您可以将字符串分解为从服务器传递的多个字符串。例如:
// variables passed from the server
selector = 'textArea';
method = 'attr';
arguments = ['disabled', 'true'];
然后你可以这样评价:
$(selector)[method](arguments[0], arguments[1]);
当然,如果参数的数量需要是动态的,那就会变得有点棘手。