
(Niklas nuotrauka)
Coding Horror tinklaraščio autorius iškėlė įdomų klausimą apie HTML validumą ir jo svarbą, kurį aš norėčiau išplėtoti čia. Diskusijos kilo po mažyčio eksperimento, kai buvo patikrintos didžiausios ir populiariausios interneto svetainės tokios kaip Microsoft, CNN, Digg, Slashdot, SourceForge ir t.t. Didžioji jų dalis nepraėjo HTML validumo ir kaip rezultatą turėjo po kelias dešimtis ar net šimtus klaidų. Žinoma, yra ir šiuo reikalu besirūpinančių, pavyzdžiui, Linux, WordPress bei W3C.org.
Prieš toliau plėtodamas savo mintis taip pat atlikau nedidelį eksperimentą – pagal Blogologas.lt duomenis patikrinau pirmuosius dešimt tinklaraščių, štai rezultatai:
- Nežinau.lt – 42 klaidos
- ŽudykReklamą – 23
- Cafe blogas – 17
- Ežiukas Vilniuje – 1123
- Karolis Pocius – 13
- blogasantdurniaus – 132
- Dievų žiniasklaida – 177
- Internetinė rinkodara – 31
- Radiocool – 117
- Pragaro virtuvė – 17
Kaip matome nė vienas populiariausias tinklaraštis nėra HTML validus, Ežiukas Vilniuje apskritai pirmauja klaidų skaičiumi – net 1123 klaidos. Iškart peršasi mintis ar turi kokios nors reikšmės W3C.org parengtas skydelis jums? Ar apskritai validumas turi įtakos svetainių atvaizdavimui naršyklėse?
Visai neseniai taip pat skaičiau apie esamas problemas su HTML 5 kūrimu, kai vieni atstovai teigia, jog reikia sukurti tokį standartą, kad visi rašytų kodą vienodai ir naršyklėms nereiktų stengtis interpretuoti prastai parašyto. Kodėl tai svarbu? Visų pirma, jeigu bus vienas ir konkretus standartas, sumažės nesuderinamumo su skirtingomis naršyklėmis, kai viena tą patį blogai parašytą kodą rodo vienaip, o kita naršyklė – kitaip. Antra, kūrėjai tokiu atveju turėtų labiau pasistengti ir prižiūrėti savo kodą bei rašymo stilių, kas visais atvejais naudinga.
Dabar viskas kitaip – kodas dažniausiai, kaip įrodo mūsų eksperimentai, rašomas praktiškai bet kaip – svarbu rodo. Tokiu atveju visiškai nenaudingas ir nereikalingas validumo tikrinimas, nes jis parodo niekam neturinčias įtakos klaidas.
Kodėl svetainių autoriai nesirūpina validumu?
vienastoks kelis kartus yra minėjęs apie laiko trūkumą, tačiau tai ne vienintelė problema, pavyzdžiui, kiti tiesiog tingi. Antra, kai jūsų svetainė turi kelis šimtus klaidų ar net tūkstantį W3C.org įrankio klaidų paaiškinimai tampa visiškai nenaudingi, nes jie tik apytiksliai nusako, kur gali būti klaida. Tokiu atveju reiktų ieškoti didesnės problemos, kuri galbūt automatiškai įterpiama į kiekvieną naują įrašo kodą ir t.t. Taip pat tektų iš esmės pakeisti svetainės kodą ir rankomis redaguoti ankstesnius įrašus ar puslapius, ko kūrėjai ir programuotojai dažniausiai vengia.
Dar viena problema tai kūrėjų įpročiai rašant kodą. Pavyzdžiui, target_ atributas yra validumo draudžiamas ir žymimas klaida, tačiau tuo pat metu tai labai patogus bei paprastas būdas atverti nuorodą kitame naršyklės lange ar kortelėje. Todėl eilutė „<a href=“http://www.pavyzdys.lt/“ target=“_blank“>foo</a>“ yra klaidinga. Šį atributą reiktų pakeisti Java skriptu, kas reikalauja daugiau žinių, kurių mėgėjai neturi.
Trečia, jau minėjau bet pasikartosiu: šie pakeitimai ir klaidų ištaisymai dažniausiai turi labai nedaug įtakos puslapių atvaizdavimui naršyklėse. Žinoma, tai gali sutvarkyti anksčiau jus kokią nors nervinusią ne vietoje esančia liniją ar išdėstymą ir t.t.
Kodėl vis dėl to reikalingas validumas ir kuo jis naudingas?
Jeigu jūsų tinklaraštyje ar svetainėje yra vos 17 klaidų, jas tikrai nesunku ištaisyti ir praeiti šį validumo testą. Iš kitos pusės kartais šios mažos klaidelės gali turėti didelės reikšmės. Taip pat nors ir rašote kodą neteisingai bei naudojatės target_ atributu, jūs atlikdami validumo testą išmoksite ir sužinosite kaip derėtų tai daryti ir galbūt pritaikysite šias žinias kitame savo projekte ar tiesiog ateityje.
Po anksčiau minėtu straipsniu radau ir komentarų, kad Google aukščiau pateikia validesnius svetainės rezultatus, o tam tikros klaidos esą turėjusios daug įtakos keliems puslapiams bei atvaizdavimui Safari naršyklėje. Apskritai kartais reiktų ne tiek kaltinti naršykles, kiek savo kodą ir jo rašymo manieras (išskiriant IE).
Interneto standartai buvo kurti ne be reikalo ir čia tas pats kaip turėti nesutvarkytą stalčių – kol viską jame randi, tol neverta tvarkytis, tačiau kai kada nors, ko nors, prireiks skubiai, mes pulsime jį tvarkyti. Validumo įrankiai tiesiog daro internetą tvarkingesnį ir kartais malonesnį naršyti. Tas pats target atributas žymimas klaida ne be reikalo - internete jau taip sutvarkyta, kad norėdamas atverti nuorodą kitame lange ar kortelėje gali spausti vidurinį pelės mygtuką ar dešiniuoju atvėręs meniu pasirinkti „Atverti kitoje kortelėje“ ir pan. Tai iš esmės sunaikina tokias galimybes.
Taigi validumo problemos sprendimas priklauso nuo jūsų ir iš tiesų rūpi tik svetainės savininkui, bet ar ne smagiau įdėti šiek tiek darbo ir turėti jaukiai sutvarkytą bei parengtą stalčių, kuriame viskas ne tik gražiai sutvarkyta, bet ir sudėta atitinkama tvarka, kad daiktus jame būtų lengviau rasti. Tuolabiau 20 klaidų ištaisymas tikrai neužims jūsų brangaus dienos laiko.
1T: prisipažįstu, kad kiekviename rašinyje naudoju „target“ atributus išorinėms nuorodoms. Tikriausiai tai klaida – kaip rašo Ričardas (aplankykite jo tinklaraštį!), sprendimas, kur atidaryti nuorodą, turi būti paliktas skaitytojui. Po 10-ies įrašų be „target“ vėl pamatuosiu validumą ir pasistengsiu išrankioti likusias klaideles.

39 Comments
O geras, mano blogas tik vieną errorą turi. Nuostabu. Nors beveik kiekvienam įrašė yra _target.
Mano tema berods buvo validi viska, bet paskui visokie pagražinimai klaidų pridarė (Google Shared Items, Page Rank skydelis ir pan).
Target irgi naudoju, kažkoks įskiepis sudeda juos. Gal ir blogai, bet be jo net man pačiam nepatogu, nes neturiu jokio vidurinio pelės mygtuko, nes pelė stalčiuj guli, o naudoju touchpad.
Nors kita vertus galima būtų ir išjungt tą įskiepį, nepražūčiau be jo :)
Tada dar klaidų milijonus primeta paveikslėliai įkelti šone teksto. Kaip tą sutvarkyt, tai aš jau neįsivaizduoju.
Hm, įdomu. Pasitikrinau savo tinklaraštį, tai be kelių smulkių klaidelių isos kitos – vaizdų iš youtube embed’inimo kodo problemos, esą neegzistuojantys vienokie ar kitokie atributai.
CSS3 palaiko target man atrodo, bet kolkas niekas nepalaiko CSS3 :)
Šiaip ir teisingai čia su tuo _target, nes aprkrauna vartotoją bereikalingais langais – jis pats turi pasirinkt kur jam rodyti nuorodą. Tai netgi panašu į pop-up reklamas, kurios yra labiausiai nervinančios iš visų.
O, kad nebūtų klaidų reikia jau kuriant puslapį naudotis W3C Validator ir taisyti, o ne vargti poto.
Validumas – kalbinis invalidumas
@banditaz
http://www.alistapart.com/articles/flashsatay
http://www.alistapart.com/articles/byebyeembed
http://wiki.dreamhost.com/inde....._Embedding
ziurint kas per klaidos. jei xhtml 1.0 strict doctypas ir ant nuorodu prideta target tai nieko tokio. dar labai daug klaidu prigeneruoja visokie wysiwyg redaktoriai. i tokias klaidas galim ir nekreipti demesio :) bet jei html is esmes kreivas (eg. tagai neuzsidaro, pasikartojantys h1 tagai ir pan.) tai jau tada negerai
Beje, o target, jei neklystu, tik XHTML’e nėra. HTML4 palaiko jį.
Kiek pačiam teko „karpyti“ šablonus – vienas iš reikalavimų, tai validus HTML kodas. Deja vartotojui pradėjus talpinti ten informaciją – validumo nelieka kaip sniego pas mus liepą. Situacija manau panaši visur – pamėginkite per validatorių patikrinti valstybines žiniatinklio svetaines, ir pamatysite, kad validumu ten irgi nekvepia, nors reikalavimai kuriant svetaines – yra.
Tikrai nemanau kad įmonės, laimėjusios konkursus nepateikė validaus kodo, juk tai elementas, kurį lengvai ir OBJEKTYVIAI galima patikrinti.
Kodėl taip yra? Manau galima išskirti dvi priežastis: prastos TVS WYSIWYG priemonės – leidžiančios pateikti informaciją „kreivai“ (svarbu atrodytų gražiai) ir vartotojai, kurie tas priemones aklai naudodami kreivai ją ir pateikia.
Nežinojau, kad oficialiojoje lietuvių kalboje yra toks žodis „validus“ bei „validumas“ :)
Versčiau „taisyklingas“, „taisyklingumas“ bei panašiai, jei jau „blogą“ bei „blogerį“ nuosekliai „tinklaraštiname“.
Validation FAIL! VALIO! :))
Tas jų validation neturi prasmės, nes tavo minėtas atvejis target=”_blank”, yra draudžiamas, nes draudžiami visi seni HTML inline tag’ai. Kodėl? Pagal juos inline tag’ai kaip border=0 sunkina kodą bitais, kai TIPO CSS buvo galima parašyti viską ir pakrauti atskirai.. Tik kokia nauda keisti 10 simbolių target į kodą 10 EILUČIŲ ILGIO JAVASCRIPT!!? Ten jie iš didelio rašto seniai išėjo iš krašto!
Aš net nesilaikau jų standartų, nors pas mane 30 klaidų, ir visos praktiškai dėl to, kad IMO target, border kartais patogiau naudoti nei CSS bereikalingai krauti ar javascript headerius. Tuo pat metu CSS ir kiti validation su 0 klaidų. :)
Taip pat jie tik sintaksę tikrina, o kodas turi būti ir logiškai parašytas. Daug svarbiau, kad pirma logiškai būtų h1,h2 sudėlioti, o ne ten dėl 25bitų verkti, kai intiko greičiai seniai 10mbps…
Sutvarkiau keletą klaidų kurios buvo ne tokios kaip reikia kabutės ir va pavyzdžiui šitas blogo puslapis yra tvarkingas http://tinyurl.com/bxl45y :) Bet tik šis, nes puslapius su įrašais teisingumą gadina turinys, kad ir youtube kodai.
pragaro virtuvė dabar jau validi .P
O dėl IE, tai Firefox ir IE yra pakankamai kreivos naršyklės pagal kodo interpretaciją, bet atsižvelgiu tik į šias naršykles, nes Opera ir Safari yra mažuma, kaip mažuma koks kmelion browser.. Taigi ir nerūpi niekam, ar jos gerai vaizduoja, bet svetainės kuriamos FF ir IE daugumoje. :) Tarkim su Opera mano svetainę kreivai vaizduoja, bet jei padaryčiau, kad opera gerai būtų, tai su IE ir FF bus š…
Todėl kokie apple gali kiek nori verkti, kad nesilaiko kažkas standartų, bet tokie MS specialiai nesilaikys standartų, o koks FF galbūt tyliai pakreivins savo naršyklę, kad gražiai veiktų puslapiai, specialiai IE kurti. ;)
Kad ten ir tos klaidos didžiąja dalimi buvo kabinėjimasis prie smulkmenų. Pragaro virtuvėje 9 iš 17-os buvo mano neatidus alt tagų dėliojimas prie nuotraukų. Pff.. O likusios – irgi visiškos gėlytės :)
O šiaip žiūrint į klaidų skaičių, gan aiškiai matosi, kuriuos blogus programuotojai prižiūri ;) Aha, esminė dalis pragaro virtuvės kodo netgi specialiai apsaugota nuo turinio kūrėjos :))
Vat nuėjau ir susitvarkiau. Liko 1 error ir 1 warning, kurių nežinau kaip išspręst, o tiksliau tai tingiu ieškot kaip išspręst :)
O šiaip kartais optimizacijos tikslai gali reikti kodą specialiai invalidu padaryt :) Tarkim XHTML’e nedėti / paveiksliuko kodo gale — vis sutaupai vieną bitą :)
Ir bendrai tas validumas yra pervertintas dalykas. Kažkodėl žmonės mano, kad validus = geras, nors galiu prirašyt tokio šūdo, kad pats velnias sprandą nusisuktų, o kodą visvien validžiu padaryt.
HTML 5 juodraštį W3C jau patvirtino. Jame gairės aprašytos smulkiai ir tiksliai, kad naršyklės negalėtų interpretuoti skirtingai. „Sukurti tokį standartą, kad visi rašytų vienodai“ loginė klaida — standartas neužkirs kelio rašyti jo nepaisant, klaidingai. Bet HTML5 susitarta, kad net su kodo klaidomis naršyklės elgsis vienodai. Plačiau apie tai: HTML4 ir XHML1 keičia vienas HTML5.
target=“" nėra draudžiamas. Klaida yra taikyti target, bet deklaruoti tokį tinklapį XHTML1.1, StrictXHTML1.0 arba StrictHTML4. Target yra skirtas pasiųsti duomenims į tinkamą polangį HTML4 arba XHTML1 Frameset tinklapiuose, bet leidžiamas ir HTML4 arba XHTML1 Transitional (tvarkinguose tinklapiuose, kuriuos naršyklės rodo ne standard, o quirks mode). Tik ne atidarymui naujo lango — tai jau skaitytojo prievartavimas, tam yra [Shift] arba [Ctrl] prieš bakstelnant pacuku, bei daug kitų būdų.
Tai būtų itin šiurkštus WWW architektūros standartų, accessibility, usability, apskritai interneto kultūros ir gero elgesio taisyklių pažeidimas.
WWW dailidei, jei jam rūpi neiškraipytas vaizdas, žiūrint bet kokiomis priemonėmis, suręsti WWW buveinę pagal W3.org susitarimus neužtenka, tenka dar pasirūpinti, kad rašytojams (savitarnos atveju) nereiktų išmanyti HTML, kad jie savo skelbiama medžiaga negalėtų netyčia sugadinti švaraus ir taisyklingo dizaino. WordPress nečiupinėjau, bet TextPattern tuo pasirūpinta.
Oho. Tikrai išsamus ir naudingas komentaras. :)
„Šį atributą reiktų pakeisti Java skriptu, kas reikalauja daugiau žinių, kurių mėgėjai neturi.“
JavaScript nelygu Java ;)
Na, čia viena iš neišsemiamų temų :) Noriu tik akcentuoti porą dalykų: kodo kokybę apibūdina ne tik jo teisingumas (validumas), bet ir prasmingumas. HTML validžiu padaryti yra labai lengva, bet validumas negarantuoja, kad išdėstymui nebus panaudota šimtas lentelių, paragrafai skiriami ne su P, o su BR, antraštės vėlgi bus sužymėtos su kokiu B, o ne H1…6 ir t.t. ir pan. Prasmingas, bet
nevalidus kodas geriau nei beprasmis, bet žaliai šviečiantis validator.w3.org. Yra labai paprastas būdas žaibiškai įvertinti kokio
nors tinklapio kodo kokybę — tiesiog pažiūrėti į jį be CSS, iš karto matosi, ko galima tikėtis.
Prie tvarkingo kodo pliusų pridėčiau tai, kad daug paprasčiau tvarkytis su CSS ir
mažiau galimų problemų prieinamumo (accessibility) srityje. Nereikia pamiršti, kad kodą kramto ne tik grafinės naršyklės.
Dėl target atributo — kaip ir minėta, jo geriausiai visai vengti — ir dėl to, kad lankytojas pats turėtų rinktis, kur jam atidaryti nuorodą ir dėl to, kad tokių langų atidarinėjimas yra didelė problema neįgaliesiems, naršantiems su balsu skaitančiomis naršyklėmis.
Dar truputį paaiškinsiu dažną nesusipratimą: HTML4.01/XHTML1.0 turi tris DTD variantus: transitional, frameset ir strict. Target atributo nėra tik Strict DTD.
Reikėtų skirti dar ir su kodu dirbančius — firmoms, kurių pagrindinė veikla yra tinklapių kūrimas išleisti kreivus tinklapius turėtų būti tiesiog neprofesionalumo ženklas, deja, tai dažniau taisyklė, nei išimtis :(
Žmonėms, kurių darbas visai nėra susijęs su HTML ir CSS tvarkymų ir reikalavimai kiti — jie dažniausiai turi pasikliauti savo naudojamų priemonių galimybėmis. Ką WordPress pagamina, tą ir turės, ne visiem lemta žinoti doctype ar dtd subtilybes…
@Heroix: target attributas (x)html ir :target dinaminė pseudo klasė CSS3 yra visai skirtingi dalykai. Beje, šią CSS3 dalį, kaip ir nemažai kitų palaiko visos naujos naršyklės (išskyrus IE).
@Julius, deja, labai daug lietuviškų valstybinių institucijų savo tinklapiams naudoja Idamo SmartWeb — kodo požiūriu tai yra ABSOLIUTUS KOŠMARAS. Pasigėrėkit http://www.telsiai.lt tituliniame puslapyje 320 lentelių. Ankstesnis lyderis socmin.lt su savo 187 nublanksta. Aš savo tinklaraščio skaitytojams dar esu skolingas išsamesnę analizę, bet mano kiti įrašai greičiausiai apie tai ir bus.
Beje, dar kartelį pagarba http://www.lrs.lt — už pastangas ir už validumą :)
@Originalas — na, šį kartą tamsta pats save pranokote nusikalbėjimo srity. „ draudžiami visi seni HTML inline tag’ai“ — oho! Gal pradžiai būtų neblogai išmokti skirti elementus, tag’us ir atributus, o paskui reiškti savo nuomonę?
Ir border=0 labiausiai nepageidautinas ne dėl to, kad sunkina kodą baitais, o dėl to, kad pažeidžia turinio ir jo apipavidalinimo (presentation) atskyrimo principą. HTML yra dokumento struktūrai žymėti, CSS — aprašyti kaip jis atrodys. O kalbant apie baitų taupymą, tai CSS lankomos svetainėse gali padėti sutaupyti laaaabai nemažai tinklo srauto. Kadangi apie naršykles tamstos išmanymas panašus kaip ir apie HTML/CSS, tai net nekomentuosiu. Ir šiaip pasistengsiu ateity šio veikėjo komentarus ignoruoti.
Kažkas ten minėjo „varganus 250 baitų“ ir jų poveikio nebuvimą kai greičiai „10mbs“. Žmogus, matyt, įsivaizduoja, kad w3 standartai kuriami jam :D Paimk tarkim milijoną unikalių lankytojų per dieną (arba kokį 10-20 milijonų atvertimų per dieną). Padaugink juos iš tų savo „varganų 250 baitų“ (nors realiai skaičiai didesni, nes puslapiai ne blog’o dydžio). Atsižvelk į tai, kad čia tik tau tavo 30 megų per dieną srautas nemokamas. Pridėk tai, kad dėl naršyklių saviveiklos (IE čiulpia) kodo apimtys tik didėja. Visai pravartu pasidaro laikytis standartų :)
@Karolis Pocius:
randi kode „cse-search-box&lang=lt“ ir po „&“ dar prirašai „amp;“.
Turėtų pakakti.
Jei nekreipsime dėmesio į moralinį pasitenkinimą ir suprantamesnį HTML koderiams, tai tas validumas žemai kabo daugumai.
+ google SERP įtakojimo procentas yra toks mažas, kad neverta dėl jo stengtis.
Moralas: turi laiko žaist žaisk, neturi nuveik per tą laiką ką nors naudingesnio.
Mano patarimas tiems, kuriems žemai kabo — jei esamame kode yra DOCTYPE — išimkite, jei nėra — tai ir nedėkite.
Kitas dalykas, kai žemai kabo kodo kokybė, tai paprastai žemai kabo ir kodo struktūra, o tas SERP įtaką oi įtakoja.
Trečias dalykas, jei kažkam tai yra laikui imlus žaidimas, tai gal geriau pasirinkti kitą smėlio dėžę? Nes jei tau nusispjauti į savo darbo kokybę, tai gal to darbo nereikėtų dirbti?
Ketvirtas dalykas: tvarkingai darant nuo pradžių validumui pasiekti
visai nereikia gaišti laiko, o tvarkingas kodas taupo laiką, kurį tektų
naudoti ieškant kodėl neveikia CSS ar JS.
Penktas dalykas: liūto dalį prie kodo praleidžiamo laiko sudaro jo priežiūra. Kuo kodas suprantamesnis, tuo efektyvesnis tas laiko praleidimas bus.
Moralas: „taupydamas laiką“ kodo kokybės sąskaita nieko nesutaupai, nebent parodai, kad tau nusispjauti.
Justinas kažkada peržiūrėjęs mano blogą nustebo „keista, kaip tavo blogas išvis veikia“ :)))
aš vis naujinu naujinu tą savo dizainą, bet nesurandu laiko. manau čia bus papildomas motyvatorius tai pabaigti greičiau. ačiū! :)
Iš lempos aš pasakiau tuos bitus, nes juk target=“_blank“ tėra 15 simbolių, o javascript’as, kuris daro open external yra kažkur 10 kodo eilučių!!!
Kaip ir norint turėt vos vieną elementą (tarkim paveikslėlį) su išskirtiniu atributų yra kvailą rašyti jam CSS klasę ar ID, nes taip tikrai kodas daugiau vietos užims, nei prie to vieno paveikslėlio tarkim border=0 prirašius. Jei daug jų, tai apsimoka CSS naudoti, o jei tik vienas, tai nekvaila? Tas pats ir su tuo target..
Žodžiu, kvaila čia aklai vadovautis tuo XHTML strict. Ypač kai šiandien šio įrašo iliustracija 100 000 baitų užima, o čia myžama dėl keliasdešimt bitų! Juokas.. Plius javascript ne visi palaiko ar naudoja. :p
Originalas, iš tavo komentaro sprendžiu, kad puslapių kūrimas tau apsiriboja ties „vieno paveiksliuko įkelimas“. Tokiu atveju patylėk, protingesnis atrodysi :)
delfi.lt – 539 Errors, 268 warning(s)
Nera labai svarbus tas validavimas, jei kalbeti apie reitingus pieskos sistemose. Estetiku uzsiemimas tos neesmines klaidos.
Niekam nesvarbu validumas, svarbu jog gerai rodytų. Aš pats asmeniškai darau validų kodą, ir sau, ir klientų puslapiams, bet kai tik prasideda turinio redagavimas, taip ir baigiasi visas validumas :) Pažiūrėjau savo blog’o kodą, na tūpos klaidos, kurias reik pataisyt ir tiek. Ir aišku flash’o blogas embedinimas validumą gadina.
O su embed’u galimas sprendimas yra talpint jį document.write(‘/*Kodas*/’);, bet WordPress’as pakeičia kabutes, ir nežinau kaip jį sustabdyt. Ot!
Aišku, taip nerekomenduojama daryt, ir jei jums tai rūpi, tada galite naudoti kokią nors JS alternatyvą. Kadangi man beveik nusispjaut, tai aš naudosiu tokį cheat’ą. Tik bėda, jog reikia išjungti WP formatavimą faile wp-includes/formatting.php , Užkomentuoti su /* kodas */ eilutes 47-51 ir 58 bei 60, kitaip JS kodas neveiks. :)
http://www.paste.lt/paste/f0ac.....e06a676107 , nes nebelieka kodo kitaip…
pagarbia, tiems kurie padefaultu daro _blank (ypač bloguose). O dėl validatorių, kaip kaikas sakė „geriausias validatorius vartotojo naršyklė“.
Tai pala, JS standartai teigia, jog inline javascript’as yra blogai, WC3 sako, jog target=_blank yra blogai.
OK, vadinas, jei nori abiem itikti, turi kiekvienam linkui puslapyje nurodyti unikalu ID, sukurti JS *2* masyvus, su linko ID ir target’u (kadangi javascript nepalaiko associative arrays), laikydamasis cross-browser JS compatibility, numatyti event’a, kuris suveiktu uzsikrovus puslapiui ir priskirtu visiem linkam onClick event’a… Ir cia iki pabaigos toli. Dar reikia nurodyti css taisykle, kad linkas be href atributo atrodytu kaip linkas – rodytu rankyte jei uzvedi pele ir etc.
ISVADA: target atributas yra privalomas ir nebent atsiras alternatyva bent jau target=_blank parametrui, negali but ne kalbos kad del niekam nereiksmingos validacijos, kazkas keisis
@raveren — žiūriu dėsninga, kad validacija neikam nereikšminga labiausiai atrodo tiems, kurie mažiausiai išmano ką reikia validuoti.
Kaip jau buvo ne kartą sakyta: jei be target atributo gyventi negalit, tai turit pasirinkim — jokio doctype (kas būtų geriausia, nes į kokybės standartus nusispjauti) arba Transitional DTD.
Blogai yra ne JS ar target, blogai yra atidarinėti nuorodas naujuose languose, kai to niekas neprašo. Alternatyva target atributui yra seniausiai: dauguma naršyklių spaudžiant ant nuorodos pelės ratuku atidarys nuorodą naujoje kortelėje.
Jeigu vis gi kalbame apie mirtiną reikalą turėti JS sprendimą, tai tu ji labai kreivai įsivaizduoji. Pirmiausia nereikia jokių id ir jokių masyvų — užtenka bet kokio požymio padedančio atpažinti nuorodas, kurias norima atidaryt naujame lange.
Labai gerai tam gali tikti A elementui uždėtas atributas rel=“ext“ (papildomas privalumas — pagal šitą atributą galima su CSS pridėti simbolį parodantį, kad nuoroda atidaroma naujame lange).
Antra, kas ten per kalbos apie href atributo nebuvimą? Už tokias nuorodas reikia visus 20 pirštų nukapoti (o už href=“javascript:…“ — ir 21). Javascript tiesiog turėtų pereiti per nuorodas, išrinkti turinčias rel=“ext“ ir priskirti onclick handler’į, kad atidarytų href atribute nurodytą URL naujame lange.
Bet pabrėžiu — tai tik esant mirtinam reikalui — pavyzdžiui už nugaros stovi piktas marketiodas su kirviu, nežinantis, kad už lango jau ne 1997…
Visais kitais atvejais — ne jūsų suknistas reikalas, kur aš noriu nuorodą atsidaryti. Norėsiu — atsidarysiu naujoje kortelėje, norėsiu — naujam lange, norėsiu — ten pat kur jinai ir yra.
@raveren — tiesa, pamiršau pridurti, kad JS bet koks objektas iš esmės ir yra „assciative array“, kuo labai sėkmingai naudojasi pvz. JSON:
var myOA = {‘one’ : ‘vienas’, ‘two’ : ‘du’, ‘three’ : ‘trys’};
for (oa in myOA) {
alert(oa + ‘ = ‘ + myOA[oa]);
}
Dėl target atributo tai Rimanto žodžiai yra teisybė.
Na, visu pirma, as dirbu prie projektu, kur *mano* reikalas kur vartotojas atsidarys nuoroda. Ir taip, man validacija negaletu rupet maziau.
Del rel atributo tu irgi esi teisus, ir tikrai sprendimu siai situacija yra dar ne vienas, bet per savo arogancija nesupratai mano komentaro. As turejau omeny, kad uzdraudimas taip daznai naudojamo elemento yra nesamone. Juolab, kad firefox del net nesu tikras kurio pletinio (tabmix plus?), bet visuose kompuose kuriuos turejau, stabdo window.open f-ja. Gal yra alternatyva jai?
@raveren — jei tau nerūpi daryti tvarkingai, tai ir galvos sukti dėl tariamo uždraudimo nereikia. Kaip jau sakiau, išmeti doctype ir rami galva.
Komentarą supratau. Tik mūsų pozicijos skirtingos. Tuo labiau, kad niekas to atributo ir nedraudė.