IE уничтожает обьект

12
D
На сайте с 14.01.2007
Offline
153
776

народ, бьюсь уже пару часов над одной проблемой и никак не дойду, где "лопата".

почему иногда! после выполнения этой строчки в яваскрипте уничтожается обьект "preview_images"?

document.getElementById("preview_images").style.top =docY + "px";

заранее спасибо

П.С. именно строчку выудил втыканием между строками

if (document.getElementById("preview_images"))
Kolyaj
На сайте с 28.03.2006
Offline
69
#1

Что значит уничтожается? Удаляется из DOM?

D
На сайте с 14.01.2007
Offline
153
#2

вот эта строка говорит false

if (document.getElementById("preview_images"))
[Удален]
#3

Попробуй так:

el = document.getElementById("preview_images");

if (el) {
el.style.top =docY + "px";
}
Kolyaj
На сайте с 28.03.2006
Offline
69
#4

Mosik, а в чем разница?

Dinozavr, если узел с id="preview_images" изначально имеется, то никуда он после изменения style.top не исчезнет. Ищите ошибку в другом месте или выложите весь код.

D
На сайте с 14.01.2007
Offline
153
#5
Mosik:
Попробуй так:
el = document.getElementById("preview_images");

if (el) {
el.style.top =docY + "px";
}

неа...

через несколько "телодвижений" preview_images -труп, в то же время el жив и полон сил.

П.С. речь идёт о диве с превьюшками справа http://wepho.net/rus/milena/milena/7LZIYPx . полностью функция которая им двигает:

    document.getElementById("scroller").onDrag = function (x,y) {


var scrollY = parseInt(document.getElementById("scroller").style.top);

var docY = 0 - (scrollY * (scroller.docH - scroller.contH) / scroller.scrollDist);

docY=Math.round(docY);

if (docY>-5) docY=0;
if (docY<1)
{

document.getElementById("preview_images").style.top = docY + "px";

}
}

ну и как обычно проблема только в ie

Kolyaj
На сайте с 28.03.2006
Offline
69
#6

В какой момент возникает ошибка? Я как не двигал - все нормально.

З.Ы. Блок

<!--[if IE 6]>
* html { zoom: expression(document.execCommand("BackgroundImageCache", false, true)) }
<![endif]-->
нужно вставлять в html-код. Сейчас он у вас не работает.
D
На сайте с 14.01.2007
Offline
153
#7
Kolyaj:
В какой момент возникает ошибка? Я как не двигал - все нормально.

З.Ы. Блок
<!--[if IE 6]>

* html { zoom: expression(document.execCommand("BackgroundImageCache", false, true)) }
<![endif]-->
нужно вставлять в html-код. Сейчас он у вас не работает.

в том то и дело, что нет "точки", в которой ошибка постоянно происходит(выдавал координаты). просто в какой-то момент пропадает див и всё.

только что обнаружил, что на ноуте проблемы нет, хотя на обоих компах 7. ie и все последние обновления. но блин и там и там в фоксе и опере всё нормально. ....

П.С. спасибо, исправлю. запарился :)

dkameleon
На сайте с 09.12.2005
Offline
386
#8

ИЕ 6,0. Помусолил скролбарчик. ничего не вылетает :)

Дизайн интерьера (http://balabukha.com/)
stealthy
На сайте с 15.06.2006
Offline
69
#9

Аналогично, все там нормально работает в ИЕ.

Я бы при отладке выводил (например в windows.status) значение, которое вы присваиваете в стиль объекта. Хотя сильно сомневаюсь, но наверное есть ненулевая вероятность, что при каком то значении в стиле объект умрет. Но я с таким никогда не сталкивался и потому больше склонен думать что это локальная или временная проблема. Я бы подергал скрипт на других машинах, попробовал прибить ИЕ и запустить его заново, перегрузить. Иногда, такое шаманство приводит ИЕ в чувство. Правда такие ошибки чтобы внутри ИЕ что-то "залипло" бывают редко очень и в основном когда работаешь с внешними объектами ActiveX.

Twilight CMS (http://www.twl.ru): есть Free версия, очень проста и удобна в использовании. Консультирую по любым вопросам. Новый спорт - практическая стрельба (http://nikit.in) - не для офисного планктона.
D
На сайте с 14.01.2007
Offline
153
#10
stealthy:
Аналогично, все там нормально работает в ИЕ.
Я бы при отладке выводил (например в windows.status) значение, которое вы присваиваете в стиль объекта. Хотя сильно сомневаюсь, но наверное есть ненулевая вероятность, что при каком то значении в стиле объект умрет. Но я с таким никогда не сталкивался и потому больше склонен думать что это локальная или временная проблема. Я бы подергал скрипт на других машинах, попробовал прибить ИЕ и запустить его заново, перегрузить. Иногда, такое шаманство приводит ИЕ в чувство. Правда такие ошибки чтобы внутри ИЕ что-то "залипло" бывают редко очень и в основном когда работаешь с внешними объектами ActiveX.

была бы проблема только у меня, я бы давно на неё уже забил:) просто ещё пару человек говорили о проблеме.

по крайней мере получилось сузить круг подозреваемых. с ie оказалось всё ок, а вот макстон 1.5 глючит.

ладно, всем спасибо. основной вывод: пользуйтесь фоксом :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий