السلام عليكم
لمن يستطيع ان يجد حلا
الحين هناك عدد من الصفحات اريد ان افتحها و اسحب منها محتويات
قمت بإستخدام GM_xmlhttpRequest لأن البيئة التي اعمل عليها و حسب الطلب يجب علي استخدامها
المشكلة الحين انها بداخل for loop و كما تعلمون الي الجافا سكريب متزامنه يعني قبل ان تنتهي من جلب اول صفحه تبدأ في جلب الأخرى و يصبح هناك تداخل في البيانات الي تم جلبها
اريد ان امنع ال loop من ان تقوم بدورة جديدة قبل ان ينتهي GM_xmlhttpRequest من جلب الصفحة و فلترتها
جزء من الكود
كود:
for (var i=0; i<13; i++)
{
var cityE = document.getElementById("cityLocation"+i);
var temp = getElementsByClass("cityinfo", cityE, null)[0].firstChild.nextSibling;
var idx = temp.nextSibling.nextSibling.innerHTML.indexOf("</span>");
var name = trim(temp.nextSibling.nextSibling.nextSibling.nextSibling.innerHTML.substring(idx+9).split("<")[0]);
var level = temp.nextSibling.nextSibling.innerHTML.substring(idx+7);
// alert(i);
request("this should be the url", "the post data", function (response){getData(response, name, type, playerID)}, 'POST');
//////////////////////////////////////////////////
// هنا يتم معاجلة البيانات و تخزينها //
//////////////////////////////////////////////////
}
و هنا function request
function request(url, data, onload, method) {
GM_xmlhttpRequest({
method:method,
url:'http://' + document.domain + '/index.php?'+url,
data:data,
headers: {
'User-agent': 'Mozilla/4.0 (compatible) ********',
'Content-type': 'application/x-www-form-urlencoded',
'Accept': 'application/atom+xml,application/xml,text/xml',
'Referer': 'http://' + document.domain + '/index.php',
'Cookie': document.cookie
},
onload:onload
});
}
و شكرا