Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] getElementById на ИЕ

Ответить
Настройки темы
[решено] getElementById на ИЕ

Аватара для Surround

Ветеран


Сообщения: 908
Благодарности: 20

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: zip test.zip
(840 байт, 3 просмотров)
Добрый!
Долго сегодня думал над проблемой, возникшей в приложенном файле. При вводе в текстовое поле в div подгружается автозаполнение (аля яндекс). В опере все работает. Проблема в том, что IE при вводе данных в поле (то есть вызове события обработки нажатия клавиш), пишет, что "Предполагается наличие объекта". Почитал, что ИЕ некорректно работает функция getElementById, через которую я пытаюсь обратиться к слою.
как можно сделать этот вариант рабочим и в ИЕ?

Отправлено: 17:35, 15-02-2010

 

Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Надо сказать, что и в Опере оно не работает. Вы забыли приложить файл, который указан в этой строке:
Код: Выделить весь код
<script type="text/javascript" src="script.js"></script>
Впрочем, это неважно. Если заменить функцию из того файла на alert(), то всё так, как вы описываете. В IE не работает из-за того, что в строке пропущена запятая:
Код: Выделить весь код
        var systemKeys = [13, 37, 38, 39, 40];
Посмотрите внимательно - между 39 и 40 надо поставить. После этого и в IE работает.

Последний раз редактировалось Coutty, 15-02-2010 в 18:00.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:43, 15-02-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Surround

Ветеран


Сообщения: 908
Благодарности: 20

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar script.rar
(607 байт, 1 просмотров)
Тип файла: rar custom_data.rar
(465 байт, 1 просмотров)

Точно! Спасибо! Полдня потратил на выискивание ошибки! А все потому что нет нормального редактора для JS, который показал хотя бы где ошибка. Может, посоветуете какой?
кстати, теперь всплыла проблема с кодировкой, которая возвращается с текстом по ajax. Текст в квадратиках. В сторону php скрипта использовал encodeURIComponent и iconv, а вот обратно...
script.js я забыл расписать - там просто функции для ajax.

Отправлено: 21:15, 15-02-2010 | #3


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


И какую же кодировку используете в Аяксе? Попробуйте Юникод.
Собственно, в каком виде оно возвращается?
Код: Выделить весь код
var js;
function include_js(file) {
    var html_doc = document.getElementsByTagName('head')[0];
    js = document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', file);
    html_doc.appendChild(js);
    js.onreadystatechange = function () {
        if (js.readyState == 'complete') {
            // здесь вызов какой-то функции по обработке данных
        }
    }

    js.onload = function () {
       // здесь вызов той же функции, что и чуть выше - это для совместимости с отдельными браузерами. Наверное, можно и объединить в одном условии через "или", иначе приходится проверять - не повторно ли обрабатываем те же данные.
    }
    return false;
}
Это - основной код, который и выполняет аяксовую роль (хотя, судя по названию, AJAX должен использовать XML, но я использую структуру данных JavaScript). Просто вызываем функцию include_js("script.php?a=1&b=2"), а на выходе получаем JS-файл, в котором что-то вроде этого:
Код: Выделить весь код
var brick = 52;
var mapTitle = "Уровень 2";
var descript = "Второй уровень";

map = [
  [1,1,1,1,1,1,1,0,0,0],
  [1,4,4,4,4,4,1,0,0,0],
  [1,4,4,4,4,4,1,1,1,1],
  [1,2,2,2,2,2,1,2,2,1],
  [1,2,2,2,2,2,1,3,2,1],
  [0,1,1,1,1,1,1,1,1,1]
];
Поскольку это JavaScript в чистом виде, эти переменные сразу же можно и использовать.
Оба файла у меня в UTF кодируются - проблем не возникало.


Редактор использую - Notepad++. Он, правда, не выполняет функций по обнаружению ошибок, но хоть синтаксис подсвечивает. Основные ошибки Опера находит, а что-то приходится долго вылавливать через консоль IE
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:29, 16-02-2010 | #4


Аватара для Surround

Ветеран


Сообщения: 908
Благодарности: 20

Профиль | Отправить PM | Цитировать


Спасибо!

Отправлено: 18:44, 18-02-2010 | #5



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] getElementById на ИЕ

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход