ホームページ >ウェブフロントエンド >jsチュートリアル >Ajax 応答から返された JavaScript 関数を呼び出すことはできますか?

Ajax 応答から返された JavaScript 関数を呼び出すことはできますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-22 20:59:021081ブラウズ

Can You Call JavaScript Functions Returned from Ajax Responses?

Ajax レスポンスから返される JavaScript 関数の呼び出し

多くのシステムでは、Ajax リクエストは、データ挿入後に呼び出す必要がある関数を含むスクリプト ブロックを返します。 。このため、そのような関数が DIV に挿入された後に呼び出せるかどうかという疑問が生じます。

可能ですか?

はい、次のことを前提として、返された JavaScript 関数を呼び出すことは可能です。

  • 返された関数宣言は構文的に正しいです。
  • 関数宣言は eval() を使用して評価されます。これにより、宣言コードが実行され、ページの存続期間全体にわたって関数が使用可能になります。

コード例:

次のコードは、Ajax を使用しない概念を示しています。

<code class="javascript">var newsc = '<script id="sc1" type="text/javascript">function go() { alert("GO!") }</script>';
var e = document.getElementById('div1');
e.innerHTML = newsc;
eval(document.getElementById('sc1').innerHTML);</code>

考慮事項:

関数を別の .js ファイルに外部化することはできますが、Ajax の繰り返し呼び出しや関数コンテキストの変更によって問題が発生する可能性があります。したがって、設計の選択を慎重に検討してください。

代替アプローチ:

Ajax 応答を受信した直後にコンテキストを認識した関数の呼び出しが必要な場合は、次の使用をお勧めします。 krosenvold によって説明されたプロトタイプ アプローチ。クロスブラウザーでテストされており、将来の実装のための強固な基盤を提供します。

以上がAjax 応答から返された JavaScript 関数を呼び出すことはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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