Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2007, 11:22
Аватар для Phoenix
Профессор
Отправить личное сообщение для Phoenix Посмотреть профиль Найти все сообщения от Phoenix
 
Регистрация: 24.09.2007
Сообщений: 165

Создание элементов createElement в IE.
Доброго времени суток.
У меня возникла маленькая проблема. Как всегда IE выделился, и возникли проблемы с оптимизацией кода под него.

У меня есть код:
<script>
function add(){
 var aEl = document.createElement("a");
 aEl.href="";
 aEl.text="Выход";
 document.getElementById("text").appendChild(aEl);//эту строчку игнорирует, ошибку не выдает.
 document.getElementById("text").appendChild(document.createTextNode( "Two" ));//эта строчка работает нормально.
}
</script>

<a onClick='add()'>Нажми</a>
<div id='text' name='text'></div>


Я думаю что проблема в создании элемента <a>. Читал, что IE очень придирчив к созданию элементов. Поскажите в чем может быть проблема.
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2007, 13:56
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,225

А что надо сделать? Чего добиваешься?

По существующему коду - aEl.text не надо ставить, вообще свойство text не надо трогать.

IE придирчив к свойству name в <a>, у тебя его нет, а в остальном он вполне ок.

Вот пример работающего кода:

var aEl = document.createElement("a")
aEl.innerHTML = 'Выход'
aEl.onclick = function() { 
  // все равно что href="#vyhod"
  document.location.href='vyhod' 
}
document.getElementById('text').appendChild(aEl)


Кстати, атрибут name у div не бывает, не надо его туда ставить.
Ответить с цитированием
  #3 (permalink)  
Старый 26.09.2007, 14:11
Аватар для Phoenix
Профессор
Отправить личное сообщение для Phoenix Посмотреть профиль Найти все сообщения от Phoenix
 
Регистрация: 24.09.2007
Сообщений: 165

Спасибо большое за помощь! Понял в чем ошибка была.

У тебя опечатка, что бы другие потом смогли понять...
"a.onclick = function() {"
тут aEl, так все верно

В твоем коде все же нет тега Name... Он нужен или нет для IE?

Я делаю авторизацию используюя AJAX. Вот и подгоняю под все браузеры)
__________________
После каждой девятки все снова с нуля,
Все снова с нуля, но не сначала...
Ответить с цитированием
  #4 (permalink)  
Старый 26.09.2007, 17:45
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,225

name в <a name=..> нужно, чтобы сделать метку, НА которую надо переходить.

А у тебя, как я понял, не метка создается, а делается переход на уже созданную, так что зачем тут name?

P.S код поправил, спасибо.
Ответить с цитированием
  #5 (permalink)  
Старый 26.09.2007, 18:15
Аватар для Phoenix
Профессор
Отправить личное сообщение для Phoenix Посмотреть профиль Найти все сообщения от Phoenix
 
Регистрация: 24.09.2007
Сообщений: 165

У меня метка делается, которая переходит на эту же страницу(обновляет ее) тем самым сбрасывает все настройки поумолчанию(AJAX, в процессе работы много настроек меняться будет). Делаю без name и все работает в IE.

Еще один способ есть, но незнаю насколько он оптимален(скорость добавления и правильность):
document.getElementById('text').innerHTML+='<a href="">Выход</a>';
__________________
После каждой девятки все снова с нуля,
Все снова с нуля, но не сначала...
Ответить с цитированием
  #6 (permalink)  
Старый 26.09.2007, 18:23
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,225

Метка это метка. Она никуда не переходит, она - ЦЕЛЬ перехода.
<a name="label">метка</a> - это метка, НА нее переходят через href='#label'
Ответить с цитированием
  #7 (permalink)  
Старый 26.09.2007, 19:43
Аватар для Phoenix
Профессор
Отправить личное сообщение для Phoenix Посмотреть профиль Найти все сообщения от Phoenix
 
Регистрация: 24.09.2007
Сообщений: 165

А... понял, это как якоря... сразу просто не понял немного. Спасиб, теперь понятно!
__________________
После каждой девятки все снова с нуля,
Все снова с нуля, но не сначала...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание меню ozs (X)HTML/CSS 21 25.11.2010 22:32
динамическое создание тадлицы magistr_bender Элементы интерфейса 14 23.07.2009 17:36
Повторное создание iframe Smoke Events/DOM/Window 7 07.02.2009 15:14
создание простейшого граф редактор VICTOR_81 Общие вопросы Javascript 1 31.08.2008 22:48
Создание динамической подсказки Макс Элементы интерфейса 6 14.06.2008 23:13