ホームページ  >  記事  >  ウェブフロントエンド  >  文字列から JavaScript 関数を安全に実行するにはどうすればよいですか?

文字列から JavaScript 関数を安全に実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-27 19:10:01700ブラウズ

How to Safely Execute JavaScript Functions from Strings?

文字列からの JavaScript 関数の呼び出し

JavaScript では、関数呼び出しを含む文字列を実際の関数実行に変換する必要があるシナリオに遭遇することがあります。包括的な解決策は次のとおりです。

前提条件:

  • 関数呼び出しを表す文字列を特定します。例: "settings.functionName '(' t.parentNode.id ')'".
  • 関数名とその引数を決定します: "clickedOnItem"、"IdofParent"。

解決策:

  1. グローバル スコープからターゲット関数を取得します:
<code class="js">var fn = window[settings.functionName];</code>

このステップでは、settings.functionName で識別される関数への参照を取得します (この場合は「clickedOnItem」)。

  1. 取得した値が関数であることを確認します:
<code class="js">if(typeof fn === 'function') {
    fn(t.parentNode.id);
}</code>

このステップでは、取得した値が実際に関数であることを確認します。存在する場合、指定された引数を使用して関数の実行に進みます。

提供された例では、コードは文字列を直接関数呼び出しに変換します。

<code class="js">clickedOnItem(IdofParent);</code>

追加の注意:

eval() メソッドは文字列をコードとして評価することもできますが、セキュリティ上の懸念により、通常は推奨されません。ここで紹介するソリューションは、より安全な代替手段を提供します。

以上が文字列から JavaScript 関数を安全に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。