Титла: javascript & mozilla Публикувано от: KeuH в Aug 27, 2004, 15:59 Здравейте! Едно меню пиша днес и имам проблеми с Мозила. Получава се следната неприятност. След като всичко се зареди Мозила казва "Done", горе знаменцето не се вее, но курсорът е часовник и стрелка и лентата за зареждане е заредена само до половината. Нямам никакви грешки в самия JavaScript според конзолата, освен това май нямам безкрайни цикли и нищо такова. Ето го кода:
В ИЕ този код не дава грешки. Ако някой може да ми помогне ще му бъда безкрайно благодарен. Човекът, за когото пиша менюто иска то да е съвместимо с мозила, така че е важно да работи под Мозила... Титла: javascript & mozilla Публикувано от: BULFON в Aug 27, 2004, 17:42 Първо - кога се случва писането в документа?
Ето и малко съвети - пиши в началото document.open() //do the write here document.close() Друга идея - вмъкни кода в края на страницата с innerHTML Или създай менюто изцяло с DOM-a, или serverside ако това е възможно. Титла: javascript & mozilla Публикувано от: KeuH в Aug 27, 2004, 20:28 Благодаря за съвета на BULFON! Използването на
реши проблема с безкрайното чакане при Мозила! Що се отнася до innerHTML, нещо от сорта ли имаше предвид:
А за изцяло с DOM, какво имаш предвид? DOM е начин за адресиране на елементите от някоя уеб страница и трябва да се използва в комбинация с някакъв скриптов език като JavaScript, или VBScript. Титла: javascript & mozilla Публикувано от: BULFON в Aug 27, 2004, 20:45 1. За innerHTML:
ами ако искаш менюто ти да се намира в някакъв елемент (т.е. този елемент да съдържа менюто) и този елемент е с id="menuContainer", можеш вместо поредица от последователни извиквания на document.write да правиш sMenuCode += "some html code" и накрая да направиш document.getElementById( 'menuContainer' ).innerHTML = sMenuCode 2. За решение с DOM - ами имам предвид да създадеш менюто като поредица от елементи (nodes) чрез document.createElement и да ги вложиш един в друг чреш element.appendChild. Но този подход едва ли въобще е необходим в случая. Така или иначе ти вече имаш решение ![]() Поздрави Титла: javascript & mozilla Публикувано от: KeuH в Aug 28, 2004, 13:46 В крайна сметка направих менюто с innerHTML, защото document.open() изтрива всички променливи под Мозила!!! За съжаление innerHTML е супер бавно! По-някога наистина се замислям, дали ИЕ не е най-добрия браузър...
![]() Титла: javascript & mozilla Публикувано от: KeuH в Aug 28, 2004, 13:50 ама само понякога, защото konqueror е Но:1
![]() ![]() Титла: javascript & mozilla Публикувано от: BULFON в Aug 30, 2004, 18:25 Здравей,
за да продължим с темата ![]() innerHTML е бавно, особено ако в този код който показа е началото на темата просто си заменил document.write с element.innerHTML. Т.е. пишеш много пъти в един и същ елемент незавършен HTML. Но дори и да не е така, доколкото знам мозилла всеки път когато присвояваш стойност на innerHTML всъщност браузера преработва твоят HTML код в елементи на DOM-a. (т.е. случват се няколко (поне) извиквания на removeChild, appendChild, createElement + проверки за валидност на кода) Другото - ползваш таблици. Можеш да ползваш значително по прост синтаксис само като ползваш A-таговете и CSS |