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