Autor Zpráva
Pavel817
Profil *
JS neovládám a potřeboval bych upravit část kodu aby byl validní. Jde o zobrazení data a svátku (v patě webu vpravo dole) na této stránce. Celý script je tady
window.defaultStatus="Jste na stránkách občanského sdružení Most do života";
// Nové okno
function Nove_Okno(file) {
var w=530;
var h=400;
var l=(screen.width-w-40);
var t=(20);

window.open (file,'_blank','scrollbars=1,status=0,menubar=1,resizable=0,location=0,toolbar=0,width=' + w + ',height=' + h + ',left=' + l + ',top=' + t);}

// Kalendarium

function Pole()
{  
this.length=Pole.arguments.length;
for (var i=0; i<this.length; i++) {
this[i+1]=Pole.arguments[i]; }
}


akt=13;
var ted=new Date()
var denPole=new Pole("neděle<br><span>","pondělí<br><span>","úterý<br><span>","středa<br><span>","čvrtek<br><span>","pátek<br><span>","sobota<br><span>");
var den=denPole[(ted.getDay()+1)];
var mesicPole=new Pole("ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince");
var mesic=mesicPole[(ted.getMonth()+1)];
var rok = ted.getFullYear();
var svatky=new Array(3200);
var vyroci=new Array(3200);
var obdobi=null;

  svatky[1231]="Silvestr";
  svatky[1230]="David";
  .......
  svatky[102]="Karina";
  svatky[101]="Mečislav";

dat=(ted.getDate())+(ted.getMonth()+1)*100;
sva=svatky[dat];

datum=" " + den + " " + ted.getDate() + "." + mesic + " " + rok;
svavystup=" Svátek slaví " + sva + ".";
vystup=datum;

if (1232>dat && 1200<dat) {obdobi="<b>prosinec:</b> <br>" + vyroci[1207] + "<br>" + vyroci[1210] + "<br>" + vyroci[1216] + "<br>" + vyroci[1226];}
if (1132>dat && 1100<dat) {obdobi="<b>listopad:</b> <br>" + vyroci[1112] + "<br>" + vyroci[1114] + "<br>" + vyroci[1115] + "<br>" + vyroci[1119];}
if (1032>dat && 1000<dat) {obdobi="<b>říjen:</b> <br>" + vyroci[1001] + "<br>" + vyroci[1017] + "<br>" + vyroci[1018];}
if (932>dat && 900<dat) {obdobi="<b>září:</b> <br>" + vyroci[903] + "<br>" + vyroci[906] + "<br>" + vyroci[914] + "<br>" + vyroci[925];}
if (832>dat && 800<dat) {obdobi="<b>srpen:</b> <br>" + vyroci[803] + "<br>" + vyroci[829];}
if (732>dat && 700<dat) {obdobi="<b>červenec:</b> <br>" + vyroci[703] + "<br>" + vyroci[717];}
if (632>dat && 600<dat) {obdobi="<b>červen:</b> <br>" + vyroci[602] + "<br>" + vyroci[603] + "<br>" + vyroci[606];}
if (532>dat && 500<dat) {obdobi="<b>květen:</b> <br>" + vyroci[501] + "<br>" + vyroci[503] + "<br>" + vyroci[505] + "<br>" + vyroci[506] + "<br>" + vyroci[511] + "<br>" + vyroci[514] + "<br>" + vyroci[515] + "<br>" + vyroci[529];}
if (432>dat && 400<dat) {obdobi="<b>duben:</b> <br>" + vyroci[416] + "<br>" + vyroci[417] + "<br>" + vyroci[419] + "<br>" + vyroci[426] + "<br>" + vyroci[430];}
if (332>dat && 300<dat) {obdobi="<b>březen:</b> <br>" + vyroci[303] + "<br>" + vyroci[304] + "<br>" + vyroci[305] + "<br>" + vyroci[309] + "<br>" + vyroci[313] + "<br>" + vyroci[317] + "<br>" + vyroci[331];}
if (232>dat && 200<dat) {obdobi="<b>únor:</b> <br>" + vyroci[201] + "<br>" + vyroci[205] + "<br>" + vyroci[211] + "<br>" + vyroci[215] + "<br>" + vyroci[220];}
if (132>dat && 100<dat) {obdobi="<b>leden:</b> <br>"+ vyroci[113] + "<br>"+ vyroci[119] + "<br>" + vyroci[122] + "<br>" + vyroci[126];}


Problém je v této části ve scriptu
("neděle<br><span>","pondělí<br><span>","úterý<br><span>","středa<br><span>","čvrtek<br><span>","pátek<br><span>","sobota<br><span>");


a v této části na stránce
vystup ="Dnes je " + datum
	if (sva) {vystup ="Dnes je " + datum + "</span><div>Svátek slaví <br><span>" + sva + "</span></div>";}
document.write(vystup);


Určitě se to dá nastylovat lépe ale nevím jak :( Díky.
Chamurappi
Profil
Reaguji na Pavla817:
Uvedený skript je syntakticky správně (žádný prohlížeč si na nic nestěžuje). Jestli je v něčem chyba, zapomněl jsi popsat, jak se projevuje.
Pavel817
Profil *
Zkoušel jsem validitu stránky a jsou tam problémy právě u tohoto scriptu. Funkčně je to v pořádku ale validátoru se takový zápis moc nelíbí. Asi by to šlo i líp aby byly jednotlivé tagy uzavřené. Problém je vidět tady :( Díky.
Chamurappi
Profil
Reaguji na Pavla817:
Takže řešíš pouze validitu celkového HTML, nikoliv validitu JavaScriptu.
Myslíš, že je důležité, aby tvůj HTML kód dodržoval jakási prehistorická pravidla, která nikdy žádný prohlížeč nerespektoval?
Pavel817
Profil *
Asi to není zrovna to úplně nejdůležitější ale zatím jsem se o to alespoň snažil. Mám se tedy na validitu .... ?
Joker
Profil
Pavel817:
Mám se tedy na validitu .... ?
Validace je užitečný nástroj pro ty kdo rozumějí těm výstupům, ale hon za zelenou ikonkou nemá smysl.

U výše uvedeného skriptu by mě víc než nesmyslné hlášky validátoru štvalo, že věci jako znovupoužitelnost nebo snadná údržba jsou tomu kódu úplně cizí.
Pavel817
Profil *
Bohužel nic lepšího nemám a pro dané učely by to mělo stačit. Jenom je mi divné, že se to nedá upravit tak aby to bylo validní. I když už vím, že se na to ... Bohužel se musím spokojit s tím co mám.
Chamurappi
Profil
Reaguji na Pavla817:
Samozřejmě, že se to dá upravit. Nejsnazší úprava asi je dát celý uvedený skript do externího souboru, ten pak pochopitelně pravidla HTML dodržovat nemusí.
Pavel817
Profil *
Jak prosté :) Je to tam. Díky moc.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0