Создание элементов 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 очень придирчив к созданию элементов. Поскажите в чем может быть проблема. |
А что надо сделать? Чего добиваешься?
По существующему коду - 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 не бывает, не надо его туда ставить. |
Спасибо большое за помощь! Понял в чем ошибка была.
У тебя опечатка, что бы другие потом смогли понять... "a.onclick = function() {" тут aEl, так все верно :) В твоем коде все же нет тега Name... Он нужен или нет для IE? Я делаю авторизацию используюя AJAX. Вот и подгоняю под все браузеры) |
name в <a name=..> нужно, чтобы сделать метку, НА которую надо переходить.
А у тебя, как я понял, не метка создается, а делается переход на уже созданную, так что зачем тут name? P.S код поправил, спасибо. |
У меня метка делается, которая переходит на эту же страницу(обновляет ее) тем самым сбрасывает все настройки поумолчанию(AJAX, в процессе работы много настроек меняться будет). Делаю без name и все работает в IE.
Еще один способ есть, но незнаю насколько он оптимален(скорость добавления и правильность): document.getElementById('text').innerHTML+='<a href="">Выход</a>'; |
Метка это метка. Она никуда не переходит, она - ЦЕЛЬ перехода.
<a name="label">метка</a> - это метка, НА нее переходят через href='#label' |
А... понял, это как якоря... сразу просто не понял немного. Спасиб, теперь понятно!
|
Часовой пояс GMT +3, время: 19:48. |