document.body.removeChild() глючит в Опере
Вот такая фигня получается.
Создаю див с картинкой через document.body.appendChild(), пока работает Аякс, она показывается (типа loading...). В конце - удаляется, через document.body.removeChild(). Так вот она в объекте body реально исчезает, а в окне - висит. Ее можно любым другим окном, даже не полноэкранным, подтереть как резинкой в Paint'е. Но сайт серьезный, такое оставлять нежелательно. Подскажите, может кто с подобным сталкивался? Глюк только в Опере. ИЕ, Сафари, Лис - работают четко. Весь код не хочу выкладывать - он довольно громоздкий там много всего... |
Попробуйте перед удалением ставить картинке style.display = "none".
|
Скажи спасибо добрым разработчикам Оперы за супер систему перерисовки рабочей области...
|
Цитата:
Простите, просто забыл об этом сразу сказть: style.display в самом деле работает, но только ЕСЛИ УБРАТЬ злосчастный document.body.removeChild(). А этого не хотелось бы: кликов, вызвающих Аякс, может быть много, будут плодиться дивы... |
Цитата:
ну специально для Оперы? (почти шутка... а как хотелось бы!) |
kvl,
А что происходит, если сначала скрыть (display = "none"), а потом удалить? Не удаляется, или не скрывается? Если не успевает скрыться, можно удалять с небольшим таймаутом, чтоб она успела исчезнуть с документа. Конечно, это решение больше похоже на хоровод с бубном, но тем не менее. |
Цитата:
Цитата:
|
Цитата:
Правда, setTimeout не подошел: он выполняется асинхронно, а мне нельзя двигаться по скрипту дальше, пока removeChild не отработал. Поставил просто пустой цикл типа for (i=0;i<1000000;i++){}; В общем, спасибо за идею! Я как-то не додумался до задержки... |
Цитата:
|
Не боись!
Написал же: "типа", просто длинно писать было лениво. На самом деле там будет отсчет по времени: var t1 = new Date(); var t2 = new Date(); while (t2 - t1 < 100){t2 = new Date}; |
Часовой пояс GMT +3, время: 11:55. |