Создание элементов 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, время: 20:44. |