При наведении курсора на изображение в jcarousel мой сайт отображает всплывающее окно, содержимое которого загружается через ajax. Я делаю то, что мне показалось довольно простым; сохраняя дескриптор объекта xhrRequest и прерывая существующий перед выполнением нового запроса.
Отлично работает во всех браузерах, кроме IE, где я получаю сообщение об ошибке «Объект не поддерживает это свойство или метод»
Вот код, который его запускает:
function showPopup {
// ... code snipped ...
// cancel the existing xhr request
if (showPopup.xhrRequest != null) {
showPopup.xhrRequest.abort();
showPopup.xhrRequest = null;
}
showPopup.xhrRequest = $.ajax({url: url,
type: "GET",
success:function(data) {
$("#popup-content").html(data);
}
});
// ... code snipped ...
}
showPopup.xhrRequest = null;
Отлично работает в Firefox и Chrome. Я проследил ошибку до этого фрагмента кода в jquery.js внутри функции ajax (строка 5233 в моей копии jQuery):
// Override the abort handler, if we can (IE doesn't allow it, but that's OK)
// Opera doesn't fire onreadystatechange at all on abort
try {
var oldAbort = xhr.abort;
xhr.abort = function() {
if (xhr ) {
oldAbort.call( xhr );
}
onreadystatechange( "abort" );
} catch(e) { }
Конкретная ошибка возникает в строке oldAbort.call (xhr). Есть идеи?