Autor Zpráva
vlczak
Profil *
Zdravíčko, můžete mi poradit, kde mám chybu? V IE je vše v pořádku, ale FF to nenačte, přitom by měl..

<script language=javaScript>

function clockon() {
thistime= new Date()
var hours=thistime.getHours()
var minutes=thistime.getMinutes()
var seconds=thistime.getSeconds()
if (eval(hours) <10) {hours="0"+hours}
if (eval(minutes) < 10) {minutes="0"+minutes}
if (seconds < 10) {seconds="0"+seconds}
thistime = hours+":"+minutes+":"+seconds

if(document.all) {
clock.innerHTML=thistime
}

if(document.layers) {
document.clock.document.write('<font id="clock">'+thistime+'</font>')
document.close()
}

var timer=setTimeout("clockon()",200)
}

function naplnCas (){
var datum = new Date();
aktualniCas = datum.getHours() + ":" + datum.getMinutes() + ":" + datum.getSeconds();

window.document.getElementById("cas").innerHTML = aktualniCas;
}

naplnCas();
window.setInterval("naplnCas()", 1000);
</script>

<font id=clock></font>
Leo
Profil
" if (eval(hours)"

To je probuh co? Leo
peta
Profil *
vlczak
FF - nastroje - konzola javascriptu ... Co rika?
vlczak
Profil *
to jsem ani neznal..
Chyby:
www is not defined
window.document.getElementById("cas") has no properties


..zkousel jsem to dal dohledat, ale bezuspesne..
peta
Profil *
has no properties = nema zadne parametry, jinymi slovy tento prvek vubec treba neexistuje.

Jestli to chapu spravne, tak nekdo prepisoval promenne na ceske a zapomnel upravit kazde id="clock" na id="cas"
innerHTML je funkce, ktera dovnitr prvku vepise nejaky udaj. Normalne se pouziva input a value, kvuli oramovani a tak...

a to www is not defined, to nevidim, co by mohlo znamenat. (www nwni definovane, tez obdoba mozna neexistuje)
vlczak
Profil *
Thx, ted jsem to checknul jeste necim:
window.document.getElementById(...) má hodnotu null nebo není objekt.

prepsal jsem i ten clock a porad to samy..
peta
Profil *
vlczak
Jo takhle, koukam lepsi na ten kod :)
Sleduj toto:

<script>
function clockon() {}

function naplnCas () {
window.document.getElementById("cas").innerHTML = aktualniCas;
}

naplnCas();
window.setInterval("naplnCas()", 1000);
</script>

<font id=clock></font>

A tobe na tom neni vazne nic divne?
Spoustis funkci naplnCas() (predposledni radek), ktera obsahuje prikaz prepis prvek. Ale kde mas ten prvek jako definovany? Az po te funkci. Takze zcela logicky nevi, co ma prepisovat.
Jinymi slovy, posledni radek toho kodu musi jit uplne nahor <font ...>
peta
Profil *
vlczak Jestli ti to funguje v IE, povazuj to za zazrak, protoze IE si predzpracovava script dopredu a mam pocit, ze v tomto pripade nejdriv vygeneruje HTML kod a az pak spusti script, cili vse je oki.

Nebo nastane druhy pripad, JS konzola vyhodi chybu (vykricknicek dole na liste) a za sekundu se opet spusti script a uz vse v poradku. Kdezto FF script okamzite ukonci.
vlczak
Profil *
Takhle nějak jsem to pochopil.. už to jede i ve FF, ale pořád to háže chybu a je tam nějakej bordel s těma podmínkama pokud je číslo < 10. Asi dávám špatný pořadí vyhodnocování, nebo už fakt netuším..

<script language=javaScript>

window.setInterval("naplnCas()", 1000)


function clockon() {
thistime= new Date()
var hours=thistime.getHours()
var minutes=thistime.getMinutes()
var seconds=thistime.getSeconds()
if (hours < 10) {hours="0"+hours}
if (minutes < 10) {minutes="0"+minutes}
if (seconds < 10) {seconds="0"+seconds}

thistime = hours+":"+minutes+":"+seconds

if(document.all) {
cas.innerHTML=thistime
}

if(document.layers) {
document.cas.document.write('<font id="cas">'+thistime+'</font>')
document.close()
}

var timer=setTimeout("clockon()",200)

}


function naplnCas (){
var datum = new Date()
aktualniCas = datum.getHours() + ":" + datum.getMinutes() + ":" + datum.getSeconds()
window.document.getElementById("cas").innerHTML = aktualniCas
}

naplnCas()

</script>

<font id=cas></font>
peta
Profil *
vlczak
"ale pořád to háže chybu a je tam nějakej bordel s těma podmínkama "
Konkretne jake problemy a jaka chyba?

Co ja tam vidim, tak mas funkci
clockon()
ktera dela totez jako
naplnCas ()

co treba pouzit hodiny z prikladu na JS na jakpsatweb? Aspon myslim, ze tam neco je...
nebo
http://www.volny.cz/peter.mlich/www.htm#mssub2
- digit. hodiny + datum, ale nevim, v jakem stavu pouzitelnosti to je...
vlczak
Profil *
Jde mi o to, že v IE to vyhazuje chybu, ale i přes to skript jede - sice je tam vidět, že tam mám špatný pořadí vyhodnocování metod. Ve FF podmínky (menší než 10) se vůbec nenačtou.

Mrkni na to ve FF a IE.


time
peta
Profil *
proc tam je v IE chyba?
- uz jsem to psal, nastroje, konzola JS (v IE je to ten vykricnik, musi se rozklepnout, podrobnosti)
ve FF to hlasi:
Chyba: window.document.getElementById("cas") has no properties
Zdrojový soubor: file:///D:/x/JStime.htm
Řádek: 54
peta
Profil *
pak tam mas
- celej script 2x
- neco onload a neco spoustis scriptem
- schazejici apostrof u META (nepouzivas htmlvalidator?) resp. mas ho jinde nez patri
- FONT tag mas definovany az po odstartovani scriptu (to muze byt taky IE chyba)

koukam, ze tady je to fakt jak s malymi detmi, protoze ti musim napsat cely script...
Kdyby jsi se jen aspon podival na priklad s temi digitalnimi hodinami, tak bys videl, jak jednoduse se dela casovac.

Vidis na tomto scriptu neco sloziteho? Mne to totiz funguje...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta http-equiv="Content-Language" content="cs">
<meta name="author" content="vlczak">
<meta name="description" content="Vlczakovo osobní stránky.">

<title>vlczak - home</title>

<style type="text/css">
#cas {font-family: Comic Sans MS, Tahoma, Verdana, Arial; font-size: 12pt; color: blue; font-weight: bold}
body {background-color:#E9E0CC;}
</style>


<script type="text/javascript">
function objGet(x)
{var d=document;return d.getElementById?d.getElementById(x):d.all?d.all[x]:d.layers?d.layers[ x]:null;}

function VVclock()
{
var h,m,s,t;
t = new Date();
h = t.getHours();
m = t.getMinutes();
s = t.getSeconds();
t = (h<10?"0":"")+h+":"+(m<10?"0":"")+m+":"+(s<10?"0":"")+s;
objGet("cas").innerHTML=t;
}

// --- hodiny ---
var timerID = null;
var timerSpeed = 200;

function hodiny()
{
clearTimeout(timerID);
VVclock();
timerID=window.setTimeout("hodiny()",timerSpeed);
}

</script>

</head>


<body onload="hodiny();">
<span id="cas"></span>
</body>

</html>
vlczak
Profil *
dekuju za cas, ja jsem chtel ale pomoc vysvetlit skript a dat ho dokupy, nepotrebuju hodiny jako takovy.. ale vazne thanx!
peta
Profil *
"Zdravíčko, můžete mi poradit, kde mám chybu? V IE je vše v pořádku, ale FF to nenačte, přitom by měl.. "
Mno, tak jako muzu ti popsat seznam vsech chyb, co jsem objevil v tom poslednim, ale tam jich je teda o dost vic nez v tom uvodu.
tenhle upraveny ti nestaci?
Toto téma je uzamčeno. Odpověď nelze zaslat.

0