kaxigt.com

Jag skriver om webben för webben

Validera noscript

Postad: 11 december 2008 | HTML · Javascript | 1 Comment
Lästid: 2 minuter

De som får en färdig javascriptlänk med <noscript> vet att de är knepiga att få igenom validatorn.

Denna post innehåller kod-snippar som du kan använda. Det är alltid bra att ta en backup av din stilmall och funktionsfil innan.

Noscript läggs ofta in som ett inline element och i vanliga fall fungerar inline med paragrafer.

Fast inom noscript fungerar inte blockelement som paragrafer, tabellrader eller kolumner. I många fall är de även kopplade till VBscript (visual basic) och vi som ”användare” kan inte göra ett dugg åt koderna.

Validatorn uppmärksammar bland annat att det inte får finnas en paragraf i koden där den tycks befinna sig, men det är inte vi som har lagt in paragrafen.

Line ##, column #: end tag for element ”p” which is not open

Jag vet en del som har avstått från vissa tjänster för att de värdesätter en sida utan kodningsfel mer än att få en eller två fel/varningar från olika länkscript. Det är givetvis upp till var och en att avgöra hur slaviskt man vill följa W3C:s rekommendationer gällande valideringen.

Finns det då inte något att göra åt saken?

Workaround

Jag har hittat ett litet knep att ”lura” validatorn på. Det kanske inte är den mest korrekta lösningen men den funkar. Koden validerar till och med i Strict!

Låt oss börja med att kika lite på hur koden ser ut.

<script type="text/javascript" src="xxxx.js"></script><noscript>
<img alt="" src="https://www.xxx.com/xxxx/xxxx.php?id=roskalendern&amp;st=img" />
</noscript>

Vi börjar med att omsluta hela koden med object och innanför noscript lägger vi sedan till en vanlig div. Det gör vi för att även bilden ska validera då det inte finns ngt som heter <img/> i noscript.

Genom att göra detta så ”förvandlar” vi noscript till att bli ett objekt och inom detta objekt kan man sedan lägga in sin html-koder så inte validatorn får fnatt.

<script" src="xxxx.js"></script>
<object width="300" height="150">
<div><img alt="" src="https://www.xxx.com/xxxx/xxxx.php?id=roskalendern&amp;st=img" /></div>
</object>

Svårare var det inte. Jag vill samtidigt passa på att säga att det finns andra, lite mer avancerade, lösningar som säkert är mer rumsrena är min och jag välkomnar alla tips.

Idag skriver vi javascript-koderna annorlunda, och de bör placeras precis innan avslutande body-taggen för att inte sega ned sidan om skripten inte svarar på anropet. Se nedan.
<script src="https://javascript.nu/xxxx.js"></script>
<script src="https://javascript.nu/xxxx.js"></script>
<object width="300" height="150">
<div><img alt="" src="https://www.xxx.com/xxxx/xxxx.php?id=roskalendern&amp;st=img" /></div>
</object>