3

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

功能:

$("textArea").attr("disabled","true");

我想做的事:

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

引发错误。想法?

4

2 回答 2

11

您可以在客户端使用 eval 函数:

这将立即执行您的 javascript:

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

但是,正如评论中所说,要小心你所做的,因为这是一种非常粗糙的方法。

此外,就安全性而言,您并没有真正获得任何好处,因为仍然可以打开开发工具并删除 disabled 属性

于 2013-04-15T23:07:21.490 回答
2

或者,您可以将字符串分解为从服务器传递的多个字符串。例如:

// variables passed from the server
selector = 'textArea';
method = 'attr';
arguments = ['disabled', 'true'];

然后你可以这样评估它:

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

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

于 2013-12-19T18:38:06.020 回答