Melaksanakan Fungsi yang Dikembalikan melalui Jawapan Ajax
Pertanyaan anda berkisar pada keupayaan untuk menggunakan fungsi JavaScript yang dikembalikan dalam respons Ajax. Untuk menjelaskannya, anda tidak mahu memanggil fungsi tersebut terus selepas panggilan balik Ajax, tetapi sebaliknya, anda ingin mengaksesnya kemudian semasa hayat halaman tersebut.
Jawapannya adalah afirmatif. Anda boleh melaksanakan kod yang baru diperoleh pada bila-bila masa semasa kewujudan halaman, dengan syarat syarat tertentu dipenuhi:
Syarat:
Contoh:
<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>
Walaupun contoh ini mengelak daripada menggunakan Ajax, ia menggambarkan konsep. Kaedah eval() mengisytiharkan fungsi baharu dengan berkesan, menjadikannya tersedia untuk digunakan sepanjang hayat halaman.
Nota: Adalah disyorkan untuk mengelak daripada menjelmakan fungsi dalam fail berasingan jika panggilan Ajax berkemungkinan akan berulang, kerana pendekatan ini boleh membawa kepada isu yang berpotensi. Keserasian merentas pelayar juga boleh menjadi pertimbangan, dalam hal ini pendekatan Prototaip yang dicadangkan oleh krosenvold ialah pilihan yang berdaya maju.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Fungsi Javascript yang Dikembalikan Melalui Respons Ajax?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!