Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№101-02-2008 12:01:32

PPoludnev
Участник
 
Группа: Members
Зарегистрирован: 01-02-2008
Сообщений: 2
UA: IE 6.0

Проблемы с DOM и JavaScript в Firefox Mozilla

Здравствуйте, помогите пожалуйста!!

Столкнулся со следующей проблемой, чтобы Вы не думали что я не ознакомился вот с этим:
http://www.mozilla.org/docs/web-developer/

То я ознакомился и в скрипте JavaScript использовал только те функции и свойства CSS , которые поддерживает Firefox.

вот код

Выделить код

Код:

<style type=text/css>
.fieldHidden {display:none;}
.fieldVisible {display:table;}
</style>

<script language=JavaScript>
function dropExperienceNode(btn){
        if(document.getElementById) {
                tr=btn;
                while(tr.tagName!='tr') {
                        tr=document.getElementById('ExperienceNode').lastChild;
                        tr.parentNode.removeChild(tr);
                }
        }
}
function addExperienceNode(btn){
        if(document.getElementById){
                if(document.getElementById('ExperienceNode')){
                        var template=document.getElementById('ExperienceNode').firstChild;
                        var resultNode=template.cloneNode(true);
                        resultNode.className='fieldVisible';
                        resultNode=template.parentNode.appendChild(resultNode);
                }
        }
}
</script>

<table border=0 class=publications>
<tbody id=ExperienceNode>

<tr class=fieldHidden><td>
кусочек который должен будет клонироваться и добавиться в конец вместе с ячейкой TD и TR с присвоенным ему классом fieldHidden.
здесь же будет кнопочка добавить и удалить блок.
</td>
</tr>

<TR class=fieldVisible><td>
это блок по умолчанию виден и здесь находится кнопочка добавить, при нажатии на которую блок расположенный выше должен добавиться после него.
</td>
</tr>

</tbody>
</table>

Вот ссылка где это всё происходит:
http://www.korusconsulting.ru/korus/vacancy/add

Буду признателен если поможете ценным советом или советом где у меня ошибка, думаю который день над этой проблемой...

Заранее спасибо.

PS. вот Internet Explorer и Opera код я уже оптимизировал, остлось только под Firefox

Отсутствует

 

№201-02-2008 19:11:16

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 2.0

Re: Проблемы с DOM и JavaScript в Firefox Mozilla

PPoludnev
код немного кривой, но это не так важно в данной ситуации.
проблема ваша в том, что firstChild не является первым блоком ExperienceNode. соответственно, меняем его на childNodes[1]

Отсутствует

 

№304-02-2008 14:45:01

PPoludnev
Участник
 
Группа: Members
Зарегистрирован: 01-02-2008
Сообщений: 2
UA: IE 6.0

Re: Проблемы с DOM и JavaScript в Firefox Mozilla

ошибка кралась не в этом

Выделить код

Код:

function dropNewNode(btn,ID){
        if(document.getElementById) {
                tr=btn;
                while(tr.tagName!='TR') {
                        tr=document.getElementById(ID).lastChild;
                        tr.parentNode.removeChild(tr);
                }
        }
}
function addNewNode(btn,ID){
        if(document.getElementById){
                if(document.getElementById(ID)){
                        var template=document.getElementById(ID+'Child');
                        var resultNode=template.cloneNode(true);
                        resultNode.className='fieldVisible';
                        resultNode=template.parentNode.appendChild(resultNode);
                }
        }
}

вот код скрипта который теперь работает.

Суть в том, что Firefox в отличие от IE и Opera неправильн использует функцию cloneNode() в Firefox она не может клонировать TR вместе с вложенными TD если использовать и обращаться к TR как к ChildNodes[0] или firstChild

необходимо присвоить тегу TR который собираемся клонировать ID и по нему напрямую вызвать этот объект и клонировать его как представлено выше в скрипте.

Но если

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]