Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Невидит только что созданную переменную, IE так его :( 
V
    Опции темы
kaa
Дата 30.8.2007, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



Код

Код

var topLeftArr = new Array(0,0);
topLeftArr[0] = 1;


В фаере работает, в IE нет...

Внимание вапрос: почиму?!?!?!?!  smile 

Нет, конечно вокруг еще до черта кода, но косяк локализовался вот именно здесь. Именно когда начинаю работать с только-что созданным масивом - лезет баг :(

Добавлено через 3 минуты и 24 секунды
Да, забыл добавит мессагу об ощибке:

Код

topLeftArr is undefined

PM MAIL   Вверх
Burrr
Дата 30.8.2007, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 4.9.2005

Репутация: 10
Всего: 20



На всяк приведу код всей страницы:
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>

<body>
<script>
var topLeftArr = new Array(0,0);
topLeftArr[0] = 1;
alert(topLeftArr[0]);
</script>
</body>
</html>

Прекрасно работает в ИЕ6. Чудес не бывает! Ошибка возможно связана с этими строками, но явно не в них...


--------------------
PM MAIL ICQ   Вверх
Се ля ви
Дата 30.8.2007, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



JS-машина бывает перегоняет сама себя на медленных компах. Я пару раз с таким сталкивался, что в IE она не успевает закончить предыдущее сложное действие (как здесь - выделение памяти и создание объекта массива), а уже лезет выполнять следующее и возникает Error, если они непосредственно связаны. В этом случае спасёт незначительная задержка или просто небольшой пересмотр изначального алгоритма, что бы дать немного лишнего времени для оператора "new" и сразу после него выполнить что-нибудь другое.

P.S. Хотя случается такое действительно очень редко...


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
kaa
Дата 30.8.2007, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



Burrr, А что у нас может влиять в коде на использование переменной? Причин, кроме тоу которую указал 
Се ля ви, невижу (на работе комп тормазит по страшному). И веть фаер-то не ругается главное. :(

Это сообщение отредактировал(а) kaa - 30.8.2007, 21:53
PM MAIL   Вверх
Burrr
Дата 30.8.2007, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 4.9.2005

Репутация: 10
Всего: 20



kaa, откуда мне знать чего у тебя там в коде.
Простой тест - проверь свою страницу на нормальном компе у коллег или кинь ссылку знакомым, пусть они погоняют. Вот и проверишь предположение Ce Ля Ви.


--------------------
PM MAIL ICQ   Вверх
smartov
Дата 30.8.2007, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



kaa, а массив и его использование лежат именно в рамках одного неймспейса (функция или просто последовательный код).
Они не разнесены по разным функциям? Не может быть такого, что попытка обращения к массиву происходит раньше, чем его инициализация?
Так же поищи обязательно синтаксические или грамматические ошибки (некоторые умудряются например вместо y русскую у написать - а потом сидеть и мучаться почему массив не создается).
PM MAIL   Вверх
kaa
Дата 31.8.2007, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



smartov, Нет, никуда не разнесены :( Да и в фаере всё нормально работало - значит русские буквы нигде не прописывал.


ЗЫ: вообще код пичатал под Fierfox, ща портирую под IE :( Есть мысль тупо сварганить два варианта кода :(

Это сообщение отредактировал(а) kaa - 31.8.2007, 08:28
PM MAIL   Вверх
kaa
Дата 31.8.2007, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



Мдям

Когда делаю так:

Код

var topLeftArr = new Array(0,0);
topLeftArr = 1;


То ошибки нету. Чиго ем не нравится в этой строке?!

Код

topLeftArr[0] = 1;


Это сообщение отредактировал(а) kaa - 31.8.2007, 09:27
PM MAIL   Вверх
smartov
Дата 31.8.2007, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



kaa, чисто ради прикола попробуй так

Код

var topLeftArr = new Array();
topLeftArr.push(0);
topLeftArr[0] = 1;


может сработает smile)
Потому что явно где-то идет пересечение по переменым, то есть с другим кодом. Разбираться надо в общем - видеть весь код.
Да и то я думаю никто тут не осилит весь код читать, даже если ты его выложишь.
PM MAIL   Вверх
kaa
Дата 31.8.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



smartov, 

Думаю да... Тока если у кого бессонница smile

Попробую сегодня-завтра, спасибо smile
PM MAIL   Вверх
kaa
Дата 8.9.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



Всё... Это тупикЪ smile))

Вот так работает:

Код

//var topLeftArr = new Array(0, 0);
var topLeftArr = new Array(0, 0);
topLeftArr[0] = 1;


А так нет:

Код

var topLeftArr = new Array(0, 0);
//var topLeftArr = new Array(0, 0);
topLeftArr[0] = 1;


Называется "найди десять отличий"  smile  

Что меня этот IE уже бесить начинает... Кривой со всех сторон сразу :(

Добавлено через 4 минуты и 7 секунд
Кстати так тоже работает smile

Код

//
var topLeftArr = new Array(0, 0);
//var topLeftArr = new Array(0, 0);
topLeftArr[0] = 1;
return;


Тоесть если перед определением массива ставишь комментарий то всё работает.. Это вообще почиму?!

Кидаю сюда кусок рабочего кода:

Код

//Находим дитенка, рассчитываем его координаты и показываем 
        for(var c=0; c<nodeList.length; c++)
        {
            //if(nodeList.item(c).hasAttribute('foo'))
                if(nodeList.item(c).getAttribute('foo')=='layered-div')
                    if(nodeList.item(c).getAttribute('foo-parent-id')==parentId)
                    {
                        //Считаем координаты дитенка
                            //Получаем абсолютные координаты родительского блока
                            //
                        var topLeftArr = new Array(0, 0);
                        //var topLeftArr = new Array(0, 0);
                        topLeftArr[0] = 1;
                        return;


И кусок нерабочего:
Код

//Находим дитенка, рассчитываем его координаты и показываем 
        for(var c=0; c<nodeList.length; c++)
        {
            //if(nodeList.item(c).hasAttribute('foo'))
                if(nodeList.item(c).getAttribute('foo')=='layered-div')
                    if(nodeList.item(c).getAttribute('foo-parent-id')==parentId)
                    {
                        //Считаем координаты дитенка
                            //Получаем абсолютные координаты родительского блока
                        var topLeftArr = new Array(0, 0);
                        //var topLeftArr = new Array(0, 0);
                        topLeftArr[0] = 1;
                        return;


Там дальше нет смысла копироватить ибо return smile

Добавлено через 8 минут
ГОСПОДА! Всё дело в каментах! У меня движок генерит страницы на utf-8 и кодировку видимо для скриптов тоже соответствующую задаёт.  Пересохранил скрипт в utf-8 ошибка пропала. Я просто тихо фигею над IE. Фаер гораздо менее привередлив :(

Думаю данная проблема решена, всем спасибо за участие!
PM MAIL   Вверх
SelenIT
Дата 8.9.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



kaa, а это кусок исходника в редакторе или кусок того, что показывает в блокноте View source самого IE? Пока у меня единственная мысль - несовместимые переносы строк, из-за чего с точки зрения IE объявление массива в нерабочем варианте оказывается на одной строке с предшествующим комментом...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
kaa
Дата 8.9.2007, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



Это был кусок кода.
PM MAIL   Вверх
smartov
Дата 10.9.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



kaa, 
Цитата(kaa @  8.9.2007,  14:12 Найти цитируемый пост)
ГОСПОДА! Всё дело в каментах!

Если бы я в отпуск не ездил, то так бы тебе и сказал, что просто символ закрался, который IE-шке парсер наворачивает smile
Но ты и сам разобрался, что имхо гораздо лучше
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.