Wykonaj funkcję javascript na stronie wysłanej przez odpowiedź AJAX
Chcę wykonać funkcję, która jest wysyłana przez żądanie AJAX z serwera. Ciało funkcji nie znajduje się na stronie wywołującej. Na przykład: (pełny kod jest podany poniżej)
1. wzywając skrypt PHP:
<script>
function fun()
{
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.getElementById("rslt").innerHTML = ajaxRequest.responseText;
}
}
ajaxRequest.open("GET", "ajax_js2.php", true);
ajaxRequest.send(null);
}
</script>
<input type="button" onclick="fun()">
<div id="rslt">
</div>
Skrypt 2.ajax_js2.php:
<script>
function test()
{
alert("Hello");
}
</script>
<span onclick="test()">Test AJAX</span>
Wiem, że umieszczenie definicji funkcji „test” w skrypcie wywołującym zadziała. Ale chcę to zachować w drugim skrypcie. Co powinienem zrobić? Serwer zwraca zakres jako odpowiedź dla klienta. Klikając na zakres „Test AJAX”, należy wywołać funkcję.