jQuery将字符串作为函数执行

jQuery将字符串作为函数执行,jquery,string,function,Jquery,String,Function,我想将jQuery命令(以字符串的形式)从服务器端JS传递到客户端JS。这允许我从服务器端修改客户端DOM内容 功能: $("textArea").attr("disabled","true"); 我想做的是: $['$("textArea").attr("disabled","true")'](); 抛出一个错误。想法?您可以在客户端使用eval功能: 这将立即执行您的javascript: eval('$("textArea").attr("disabled","true")'); 但

我想将jQuery命令(以字符串的形式)从服务器端JS传递到客户端JS。这允许我从服务器端修改客户端DOM内容

功能:

$("textArea").attr("disabled","true");
我想做的是:

$['$("textArea").attr("disabled","true")']();

抛出一个错误。想法?

您可以在客户端使用eval功能:

这将立即执行您的javascript:

eval('$("textArea").attr("disabled","true")');
但是,正如在评论中所说的,要小心你所做的,因为这是一个非常粗糙的方法


此外,就安全性而言,您并没有真正获得任何好处,因为您仍然可以打开开发工具并删除禁用的属性。或者,您可以将字符串拆分为从服务器传递的多个字符串。例如:

// variables passed from the server
selector = 'textArea';
method = 'attr';
arguments = ['disabled', 'true'];
然后你可以这样评价它:

$(selector)[method](arguments[0], arguments[1]);

当然,如果参数的数量需要是动态的,它会变得有点棘手。

这允许我从服务器端修改客户端DOM内容。这不是正确的方法。几乎是重复的,但就像undefined所说的,这只是闻起来不对…这是一个javascript聊天室。必须在客户端禁用html/dom元素。试图阻止聊天室的客人摆弄他们的浏览器元素检查器——这可以让他们发表帖子,即使他们“沉默”也不知道为什么人们会对这个问题投反对票。这是完全合法的@阿尔尼塔克:这不是一个可比的情况。我不能在客户端分解这个字符串而不显示它的functionality@ShazboticusSShazbot你不能依靠JS黑客来实现安全性。用户总是能找到绕过他们的方法。现在就试试吧。是的,我已经意识到了。textarea的禁用设置只是一个设置。在服务器端,它们的名称被放入无法发布的用户数组中。我只需要一些安全+指标,以用户,他们确实已被静音。顺便说一句,并不是唯一一个显示他们被静音的视频。但这是显而易见的。