السلام عليكم
لمن يستطيع ان يجد حلا
الحين هناك عدد من الصفحات اريد ان افتحها و اسحب منها محتويات
قمت بإستخدام 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 }); }
و شكرا


رد مع اقتباس
