サーバー側の JS からクライアント側の js に jQuery コマンドを (文字列の形式で) 渡したいと考えています。これにより、クライアント側の DOM をサーバー側から変更できます。
関数:
$("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]);
もちろん、引数の数を動的にする必要がある場合は、少し複雑になります。