Žilvinas Sadauskas - Genialu tai, kas paprasta.

Damn you Internet Exploder

August 29th, 2008

Taip taip, būtent Exploder, o ne Explorer. Ko gero nėra web developerių, kurie mylėtų IE naršyklę, nebent jų rašomas kodas taikomas tik pastarajai.

Turbūt kiekvienas yra susidūręs su problema, kai žiūri į tvarkingą kodą ir matai, kad jame tikrai viskas tvarkinga, tačiau IE atsisako veikti taip, kaip liepiamas. M$ mėgsta prigalvoti papildomų bajeriukų, kurie absoliučiai iškrenta iš tarptautinių standartų.

Problema.

kintamasis = document.getElementById(’kintamasis’).value; // kas čia blogai? Huh? huh? Nu, tai kas čia blogai?

Simptomas.

Blogai yra tas, kad IE meta klaidą “object doesn’t support this property or method“.

Priežastis.

IE visus HTML objektus, turinčius ID, paverčia JavaScript kintamaisiais.

Sprendimai.

Nevadinti JavaScript kintamųjų tokiais pačiais vardais, kaip HTML’e egzistuojantys ID (manau bandyti prisiminti juos yra visiškai nereikalingas galvos grūzinimas) arba visiems JavaScript kintamiesiems naudoti prefix’ą.

Ir dar kartelį: DAMN YOU INTERNET EXPLORER.

AJAX loading paveiksliukai

June 20th, 2007

Jeigu kam yra tekę ką nors daryti su AJAX, tai turbūt susidūrėt su problemėle, kaip parodyti vartotojui, kad duomenys yra siunčiami iš serverio, nors puslapis ir neperkraunamas. Taigi aptikau tokį puslapėlį, kuriame galima susigeneruoti kokį tik nori AJAX loaderiuką :) . Galima pasirinkti iš keleto šablonų, bei keist spalvų gamą ir permatomumą.

http://www.ajaxload.info

Dinaminis JavaScript event’ų prisiejimas

June 26th, 2006

Kartais būna tokių situacijų, kai prireikia dinamiškai įkelti HTML objektus panaudojant JavaScript (toliau JS). Teko daryti vieną projektą, kurį reikėjo prifarširuoti dinaminiais formos laukų kūrimais, eventų pridėjimais ir kitais dalykėliais. Pateiksiu truputį informacijos.

Pradesime nuo HTML kodo kurį naudosime: Čia
Dabar apsirašom failą script.js su JS funkcijom: Čia

Rašant šį kodo gabaliuką reikia žinoti šias funkcijas:

  • obj.getElementById(ID) - paima HTML objektą su tam tikru ID
  • createElement(element) - sukuria HTML objektą
  • obj.appendChild(child) - įdeda objektą į kitą objektą
  • obj.removeChild(child_obj) - pašalina objektą iš objekto
  • obj.lastChild - identifikuoja paskutinį objekto elementą

Viskas šiame pavyzdyje yra trivialu, įdomesnė yra tik funkcija add_event. Aš ją radau internete, kai po ilgų galvos laužymų supratau, kad niekaip kitaip man veiksmo prie objekto prisieti nepavyks, jeigu norėsiu, kad tai veiktų tiek ant Internet Explorer (IE) tiek ant FireFox (FF). Minėtoji funkcija yra labai gera, nes ji identifikuoja kokią naršyklę naudoja vartotojas ir atitinkamai parenka kokius objekto atributus/metodus reikėtų naudoti.

Kur pritaikomas toks dalykas? Viskas matosi pavyzdyje. Mes kuriame trynimo mygtuką ir norime, kad jį paspaudus būtų ištrintas paskutinis elementas, tačiau jeigu mes neprisiesime jam veiksmo, tai jis nieko ir nedarys. Labai gerai įsidėmėkite funkciją add_event, ir naudokite visada, kai reikia.

DISCLAIMER! Tai pirmas mano mokomasis straipsniukas, bandžiau parašyt kuo greičiau, tai taip ir gavosi - nei šis, nei tas :-D