ホームページ >ウェブフロントエンド >jsチュートリアル >Ajax 応答から返された JavaScript 関数を評価するにはどうすればよいですか?

Ajax 応答から返された JavaScript 関数を評価するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-22 12:44:03267ブラウズ

How to Evaluate Returned JavaScript Functions from Ajax Responses?

Ajax から返される JavaScript 関数の統合

Ajax 応答が JavaScript 関数を含むスクリプト ブロックを配信するときに課題が発生します。特定のアクションをトリガーするには、この関数の実行が必要になります。

解決策: 関数コードの評価

内に配置されているにもかかわらず、要素の宣言コードが明示的に実行されない限り、ブラウザは新しい関数の存在を認識しません。これを実現するには、関数のコードを eval() を使用して評価し、関数を正式に宣言し、ページの存続期間全体にわたって関数にアクセスできるようにする必要があります。

次の簡略化された例を考えてみましょう。

<code class="html"><script>
  var newFunc = '<script>function go() { alert("Hello!") }</script>';
  var e = document.getElementById('myElement');
  e.innerHTML = newFunc;
  eval(document.getElementById('newFunc').innerHTML);
</script></code>

Inこのシナリオでは Ajax は使用されませんが、概念は同じです。スクリプト ブロックは

に動的に挿入されます。 eval() を使用して関数宣言を実行する前に。

追加の考慮事項

このアプローチはすべての状況で最適であるとは限らないことに注意してください。 Ajax の繰り返し呼び出しや、さまざまなコンテキスト内での関数の永続性に関する懸念がある場合は、次のような代替設計ソリューションが必要になる場合があります。

  • 関数を別の JavaScript ファイルで公開する
  • krosenvold によって概要が説明されているプロトタイプ アプローチを採用する (ブラウザ間の互換性、テストされた機能)

最終的に、最適なソリューションはアプリケーションの特定の要件とコンテキストによって異なります。

以上がAjax 応答から返された JavaScript 関数を評価するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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