首頁 >web前端 >js教程 >您可以呼叫從 Ajax 回應傳回的 JavaScript 函數嗎?

您可以呼叫從 Ajax 回應傳回的 JavaScript 函數嗎?

Susan Sarandon
Susan Sarandon原創
2024-10-22 20:59:021082瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn