-
مشکل با eval.call
باعرض سلام و خسته نباشید به شما دوستان :10:
من یک کد AJAX نوشتم که در قسمتی از کد از
کد:
var get[1] = "check";
XMLHttp.onreadystatechange = eval.call(window, get[1]);
استفاده می کنم.
اما مشکل این کد اینه که فقط تابع را اجرا میکنه و مقدار XMLHttp را نمی توان در تابع استفاده کرد.
من سعی کردم که کاری کنم که بتونم مقدار XMLHttp را جوری ارسال کنم که بتونم به روش زیر مقدار بگیرم. ولی نمی دانم چه کار کنم
اما بیشتر دوست دارم بشه به صورت
از تابع استفاده کنم.
ممنون می شم راهنمایی کنید. البته با کد :27:
باتشکر
-
این باید جواب بده:
کد:
XMLHttp.onreadystatechange = check;
یا اگر اصرار دارید با eval باشه:
کد:
XMLHttp.onreadystatechange = function() {
eval.call(window, get[1]);
};
-
دوست عزیز ممنون از پاسختان
اول بگم که هیچ یک از کدهای فوق برای بنده کار نکردند.
دوم من مشکلی با اجرا شدن تابع ندارم.
تنها مشکل من در ارسال XMLHttp به تابع هست.
تا بتونم به شکل زیر از تابع استفاده کنم.
کد:
function check(XMLHttp){
alert(XMLHttp.responseText);
}
باتشکر
-
دوستان بالاخره مشکلم حل شد.
برای ارسال متغیر XMLHttp باید یک متغیر به صورت GLOBAL ساخت و مقدار XMLHttp را به آن نصبت داد و در تابع استفاده کرد.
به صورت زیر
کد:
req = XMLHttp;
XMLHttp.onreadystatechange = eval.call(window, get[1]);
کد:
function check(){
XMLHttp = req;
alert(XMLHttp.responseText);
}