3

サーバー側の JS からクライアント側の js に jQuery コマンドを (文字列の形式で) 渡したいと考えています。これにより、クライアント側の DOM をサーバー側から変更できます。

関数:

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

私がしたいこと:

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

エラーをスローします。考え?

4

2 に答える 2

11

クライアント側で eval-function を使用できます。

これにより、JavaScriptがすぐに実行されます。

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

ただし、コメントで述べたように、これは非常に大雑把な方法であるため、注意してください。

また、セキュリティに関しては、開発ツールを開いて無効化された属性を削除できるため、実際には何も得られません。

于 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 に答える