執行透過 Ajax 回應傳回的函數
您的詢問圍繞著呼叫 Ajax 回應中傳回的 JavaScript 函數的能力。澄清一下,您並不是要在 Ajax 回呼之後直接呼叫該函數,而是希望在頁面的生命週期內稍後訪問它。
答案是肯定的。只要滿足某些條件,您就可以在頁面存在期間的任何時間執行新取得的程式碼:
條件:
範例:
<code class="html"><div id="div1"> <script id="sc1" type="text/javascript"> function go() { alert("GO!") } </script> </div> <script type="text/javascript"> // hypothetical Ajax callback 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); </script></code>
雖然此範例避免使用 Ajax,但它說明了這個概念。 eval() 方法有效地宣告了新函數,使其可在整個頁面的生命週期中呼叫。
注意: 如果 Ajax 調用,建議避免在單獨的檔案中外部化該函數可能會重複,因為這種方法可能會導致潛在的問題。跨瀏覽器相容性也可能是考慮因素,在這種情況下,krosenvold 建議的原型方法是一個可行的選擇。
以上是如何執行透過 Ajax 回應傳回的 Javascript 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!