„Głupia stałość jest ulubieńcem ciasnych umysłów.” – Ralph Waldo Emerson
Żeby stanąć naprzeciw temu aforyzmowi wpisem tym rozpoczynam serię łamigłówek, bądź jak ktoś woli zagadek o tematyce programistycznej. Zabawa polegać będzie na tym, że raz na jakiś czas będę tworzył posty z kodem w treści… który oczywiście w pewnym stopniu będzie niepoprawny. Waszym zadaniem będzie znalezienie błędu :D
Pewnie wielu z Was ucieszy fakt, że tym razem na swojej drodze nie ujrzycie tekstu długości kilometra, a jedynie podstawowe informacje o tym „pojedynku”.
Zasady?!
1. Kod niekoniecznie musi mieć błąd, niekoniecznie musi być to jeden błąd, a już tym bardziej niekoniecznie musi go limitować jakakolwiek liczba błędów – czytaj, wolna amerykanka w ilości pomyłek do znalezienia.
2. Odpowiedzi udzielajcie w komentarzach. Wygrywa ten kto pierwszy wskaże wszystkie omyłki w kodzie (o ile takowe tam będą). Pamiętajcie, że pierwszy Wasz komentarz na tym blogu musi być zmoderowany. Nie zniechęcać się więc, jeśli to nie będzie spam na pewno to zrobię (a i z kolejki też nie wylecicie ;]).
3. Problematyka błędów najprawdopodobniej opierać się będzie na wyznaczonych wg. specyfikacji standardach. W tym pod uwagę należy brać różnorodne stosowane obejścia dla przeglądarek nie do końca działających wg. tychże standardów o ile z kodu wynika, że takowe mogły być użyte. Chyba, że w zadaniu będzie podane inaczej.
4. Pytania będę starał się tworzyć o różnych stopniach trudności, ale bez skrajności ani w jedną, ani w drugą stronę. Oczywiście będą limitowane moim stopniem umiejętności i wiedzy (gdzieś pomiędzy lame, a newbie, przypisało… Alter Ego?).
Miało być krótko!!!
Faktycznie, przepraszam… proszę nie bić ;] Łamigłówką na dzień dzisiejszy jest następujący kod XHTML + CSS + JS:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="pl" xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- wyslany jako application/xhtml+xml -->
<meta http-equiv="Content-type" content="application/xhtml+xml; charset=utf-8" />
<style type="text/css">
body {
font: bold 10px Helvetica, Arial;
background-color: #000;
color: #fff;
}
div#container {
margin: 100px;
width: 300px;
height: 15px;
}
<![if !IE]>
div#container p {
color: #ccc;
}
<![endif]>
</style>
<script type="text/javascript">
<!--
if ( navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.indexOf("MSIE 7") > -1 )
{
var p = document.createElement("p");
p.appendChild(document.createTextNode("Wersja silnika IE: " + navigator.appVersion));
document.body.firstChild.appendChild(p);
}
-->
</script>
</head>
<body>
<div id="container">
<h1>Przeglądarka!</h1>
<p><comment>Nie używasz</comment><!--[if IE]>Używasz<![endif]--> IE!</p>
</div>
</body>
</html>
Wpis ten został opublikowany dnia:
wtorek, 4 Listopad 2008 o godzinie 16:43
w działach CodeTwister, Webhosting.
Możesz śledzić rozwój tematu, w tym odpowiedzi dla tego artykułu poprzez kanał informacyjny RSS 2.0.
Możesz także zostawić swój komentarz lub trackbackować ze swojej własnej strony.
Dzi3ciol walidator się nie czepia, z tymże nie wysyłasz pliku w takiej formie jaka podana jest w listingu. No i poszedłeś na około. Niby działa, ale m.in. JS nadal nie jest taki jaki powinien być ;]
Próbujcie dalej, część błędów jest symboliczna… niby działa, ale kod nie jest taki jaki powinien być :D
var p = document.createElement(„p”); —> wydaje mi się że powinno być:
var p = document.createElement(‘p’); —> „” używa się chyba w przypadku createTextNode(„tekst”) chociaż moja wiedza na temat JS jest raczej nikła.
Hmm, pokuszę się o odpowiedź:
Po pierwsze
<![if !IE]> div#container p { color: #ccc; } <![endif]>Odkryte komentarze warunkowe nie są zgodne ze standardami.
Po drugie:
Element comment nie występuje w standardzie HTML
Jeszcze jest jakiś błąd w kodzie JavaScript, ponieważ na IE nie wyświetla jaka jest to wersja mimo, że teoretycznie powinno ;]
Nic więcej chyba nie zauważyłem.
Pozdrawiam,
gruch4
nie bardzo możesz wyrzucić od tak znacznik
commentbo IE już kompletnie wariuje;]nie pisze nic więcej bo chcę całość oddać ;]
zrobione;]
tylko nie wiem czy taka wersja się liczy, zmieniłem js, wyświetla wszystko jak powinien, validacja ok;]
http://www.dzi3ciol.com/pliki/m1chu.html
pozdrawiam;]
Gruch4 w dobrym kierunku idziesz…
Dzi3ciol walidator się nie czepia, z tymże nie wysyłasz pliku w takiej formie jaka podana jest w listingu. No i poszedłeś na około. Niby działa, ale m.in. JS nadal nie jest taki jaki powinien być ;]
Próbujcie dalej, część błędów jest symboliczna… niby działa, ale kod nie jest taki jaki powinien być :D
Hmm m1chu, może przedstawisz nam rozwiązanie, bo widzę, że nikt się nie chce pokusić o odpowiedź ;] A w między czasie możesz zadawać następne ;]
var p = document.createElement(„p”); —> wydaje mi się że powinno być:
var p = document.createElement(‘p’); —> „” używa się chyba w przypadku createTextNode(„tekst”) chociaż moja wiedza na temat JS jest raczej nikła.
document.body.firstChild.appendChild(p);
chyba powinno być:
document.body.firstChild.appendChild(‘p’);