Автор Тема: Падает ИЕ  (Прочитано 6593 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« : 13 Ноября 2006, 14:47:31 »
span document.getElementById(spanId);
if(
span)
	
setTimeout(function() {
	
	
span null;
	
	
document.body.removeChild(span);
	
}, 
50);

Кто-нибудь может объяснить мне неразумному, почему это не работает в ИЕ? Вариент с span.parentNode.removeChild(span); не работает так же.

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #1 : 13 Ноября 2006, 15:21:55 »
А сам HTML выложи сюда, если он не многотонный конечно, точнее просто нужный кусок кода выложи

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #2 : 13 Ноября 2006, 15:25:51 »
Span генерируется средствами js:
var span document.createElement(\'SPAN\');
span.style.display = \'none\';
span.id = spanId;
document.body.appendChild(span);

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #3 : 13 Ноября 2006, 16:07:57 »
Как я сразу не заметил... Убери span = null; и у тебя всё заработает. Это просто бессмысленно пытаться удалить узел которого по сути нет )))

Если бы ты использоватл не IE а FireFox, то нашёл бы ошбку очень быстро используя JavaScript Console

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #4 : 13 Ноября 2006, 16:10:08 »
;)

span = null; Добавил специально, хотя ИЕ и без него падает.

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #5 : 13 Ноября 2006, 16:22:11 »
Цитировать
Anthony:
span = null; Добавил специально, хотя ИЕ и без него падает.


Зачем?

Ну так сейчас проблема решена? Всё работает как надо?

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #6 : 13 Ноября 2006, 16:26:48 »
Сорри, что не очень понятно выразился...

Не важно присутствует span=null; или нет, ИЕ падает все равно. Т. е. дело не в этом, падает он именно на удалении чаэлда.

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #7 : 13 Ноября 2006, 16:49:51 »
А версия браузера какая?

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #8 : 13 Ноября 2006, 16:55:35 »
IE v. 6.0.2900

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #9 : 13 Ноября 2006, 17:11:42 »
Даже странно у меня всё работает. Ну а в других браузерах ты пробовал?

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #10 : 13 Ноября 2006, 18:08:20 »
FF работает на ура, собственно в нем и писал скрипт изначально. Опера что-то тоже барахлит, но с ней пока не разбирался, может в чем другом проблема...

Если интересно: http://www.amity.ru/plugins/p890_monitor/monitor.php

А здесь: http://www.amity.ru/plugins/p890_monitor/main.js
функции get_data и reload_data. Вот на reload_data ИЕ и падает.

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
Падает ИЕ
« Ответ #11 : 14 Ноября 2006, 20:21:05 »
function reload_data(spanId,href)
{
span = document.getElementById(spanId);
if(span)
setTimeout(function() {
document.body.removeChild(span);
// span.parentNode.removeChild(span);
}, 100);
get_data(spanId,href);
}


Ну, вообще-то:
var span = document.getElement...
иначе эта переменная будет создана не в лексическом контексте функции. А дальше идет замыкание, а это дело темное и как там все замкнется с учетом, что span неизвестно где, никто не знает :). Попробуй внутри анонимной функции вызвать alert( span ). Действительно ли span содержит ссылку на элемент?
Блог ГО

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #12 : 14 Ноября 2006, 22:49:28 »
vasa_c
Возможно... После того, как внес соотв. изменение ИЕ виснуть не перестал правда, но я вроде нащупал тонкое место...

Спасибо!

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
Падает ИЕ
« Ответ #13 : 21 Ноября 2006, 15:52:51 »
Проблема была на самом деле связана с утечкой памяти. См. тему Удаление таблиц.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28