Почему мой элемент управления COMET выдает ошибку JavaScript, когда IE8 закрывается? - PullRequest
2 голосов
/ 10 октября 2009

Я написал элемент управления таблицей COMET / Reverse Ajax в ASP.NET.Часть javascript использует jQuery (1.3.2).Похоже, что работает нормально, кроме закрытия браузера в IE (8).В этом случае выдается «Ошибка времени выполнения Microsoft JScript: объект не поддерживает это свойство или метод».Только когда IE закрывается, я получаю сообщение об ошибке.Firefox и Chrome не выдают ошибку.

Элемент управления является потомком System.Web.UI.WebControls.Table.

Линия, вызывающая проблемы:

var currentCell = $("#" + gridName + " tr:nth-child(" + (rowIndex + 1) + ") td:nth-child(" + (cellIndex - rowIndex * columnCount + 1) + ")");

"gridName" - это идентификатор элемента управления, который передается в функцию в качестве параметра.

Функция, содержащая эту строку, вызывается в ответ на успешный запрос Ajax POST.

Контроль работает, как и ожидалось, пока страница открыта.Я предполагаю, что проблема в том, что что-то было удалено при закрытии браузера, поэтому ожидающий Ajax-запрос завершается неудачно, когда он возвращается.Однако это всего лишь предположение - я не очень знаком с jQuery.Я попытался установить флаг в событии window.unload, чтобы предотвратить вызов вызывающего код после события unload, но это не решило проблему.

Я не использую никакие библиотеки Javascript, кроме jQuery,Javascript включен как WebResource.

Проблема не возникает при переходе на новую страницу - только при закрытом браузере.

...