Я нахожусь в процессе написания сценария Greasemonkey для страниц этого сайта (. Сайт1 ). На сайте Site1 есть сделки и предложения различных видов, и мой сценарий GM направлен на следующее:
Когда кто-то посещает предложение на Site1, сценарий запрашивает Site2 , чтобы узнать, указан ли этот отель также на Site2. Если это так, отобразите результаты поиска с Site2 на Site1.
Проблема в том, что Site2 отображает индикатор выполнения («Загрузка результатов» ), а затем отображает результаты. Таким образом, мой запрос Ajax всегда возвращает пустые результаты и выглядит следующим образом (См. красную -часть в рамке):
(Нажмите, чтобы увеличить изображение)
Однако на самом деле он должен содержать полное содержимое результатов поиска с Сайта 2, например:
(Нажмите, чтобы увеличить изображение)
Я пробовал синхронный запрос Ajax, а также GM_xmlhttpRequest
безрезультатно.
Это проблемный индикатор выполнения Зоны 2 :
(. Нажмите, чтобы увеличить изображение)
Как я могу заставить запрос AJAX ждать, пока поиск на Site2 будет полностью обработан, прежде чем возвращать ответ на Site1?
Для справки: мой полный рабочий код скрипта находится на pastebin.com .
Это соответствующий фрагмент:
$(document).ready(function(){
var rewardsSiteResults = $('').attr('id', "rewardsSiteResults")
.html("" + progressMessageText + "
").append(spinnerGif);
$(insertSelector).after(rewardsSiteResults);
var addressMap = getAddressOfHotel();
var pinCode = addressMap[pinCodePlaceHolder];
var hotelName = addressMap[hotelNamePlaceHolder];
var queryURL = constructQueryURL(pinCode, hotelName);
$.ajaxSetup({async:true, timeout: 5000});
$.get(queryURL,null, function(response) {
if(!displayed){
displayed=true;
//rewardsSiteResults.html("adfaasddsf");
var text = $(response).find("#col2");
$(text).find("script").remove();
//console.log(text.html())
// $('').appendTo('#rewardsSiteResults')
// .contents().find('body').append(response);
rewardsSiteResults.html("" + text.html() +"");
//console.log(response);
}
},'html');
});