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