>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Проблемы с сайтами http://forum.mozilla-russia.org/viewforum.php?id=24 >Проблемы с DOM и JavaScript в Firefox Mozilla http://forum.mozilla-russia.org/viewtopic.php?id=21341 |
PPoludnev > 01-02-2008 12:01:32 |
Здравствуйте, помогите пожалуйста!! Столкнулся со следующей проблемой, чтобы Вы не думали что я не ознакомился вот с этим: То я ознакомился и в скрипте 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> Вот ссылка где это всё происходит: Буду признателен если поможете ценным советом или советом где у меня ошибка, думаю который день над этой проблемой... Заранее спасибо. PS. вот Internet Explorer и Opera код я уже оптимизировал, остлось только под Firefox |
Shutnik > 01-02-2008 19:11:16 |
PPoludnev |
PPoludnev > 04-02-2008 14:45:01 |
ошибка кралась не в этом Выделить код Код: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 и по нему напрямую вызвать этот объект и клонировать его как представлено выше в скрипте. Но если |