是否可以onreadystatechange从函数外部检索函数中设置的变量? --edit– 关于函数的执行: 如果可能的话,我想单击执行ajaxFunction(),然后单击执行 popup(),或者以某种方式等待ajax函数结束,然后调用警告框
onreadystatechange
用伪代码:
function ajaxFunction(){ //creating AJAX ... // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function (){ if(ajaxRequest.readyState == 4){ //success code ======>Here i want to set variable <===== var MyVariable='MyContent'; } } //Retrieving page .... } function popup(){ ajaxFunction(); alert(MyVariable); }
以下代码假定ajax请求是同步的:
function popup(){ ajaxFunction(); alert(MyVariable); }
但是由于同步请求阻塞了浏览器,因此您几乎在所有情况下都应使用异步调用(如果我没记错的话,不应在同步请求上调用onreadystatechange,但是不同的浏览器的行为会有所不同)
您可以做的是:
function ajaxFunction(callback){ //creating AJAX ... // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function (){ if(ajaxRequest.readyState == 4){ //success code callback('MyContent') } } //Retrieving page .... } function popup() { ajaxFunction(function(MyVariable){alert(MyVariable);); }