Autor Zpráva
intimidant
Profil *
Hoj, mám problém.
níže uvedený skript mi funguje pouze ve FF, IE hlásí, že GetElementByID má hodnotu null, nebo není objekt a Opera mlčí...
nenapadá vás, kde by mohla být chyba?

skript volám přes
<a href='' id='odpocet' style='text-decoration:none; color:#fff;' title='Aktualizovat čas do automatického odhlášení.'> </a>

a samotný skript je:
function display() {
remainingtime = logouttime/1000 - actualtime/1000;
if (remainingtime > 60) {
minutes= parseInt(remainingtime / 60);
} else {
minutes= 0;
}
seconds= parseInt(remainingtime - minutes*60);
if (seconds < 10) {
seconds= "0"+seconds;
}
document.getElementById("odpocet").firstChild.data=""+minutes+":"+sec onds;
window.setTimeout("checktime()",1000);
}

function settimes() {
var time = new Date();
logouttime = time.getTime();
logouttime += 60*60*1000; //time set to automatic logout
checktime();
}

function checktime() {
var time = new Date();
actualtime = time.getTime();
if (actualtime >= logouttime) {
expired();
} else {
display();
}
}

function expired() {
page_form.submit();
alert("Pro dlouhou nečinnost jste byl odhlášen. Přihlašte se, prosím, znovu do systému.");
location.href="logout.php";
}
peta
Profil
intimidant
- odkaz na stranku?
tady je jen 1/3 prikladu a navic, znas nekoho, kdo si to zkopiruje do souboru a vyzkousi?

- pravdepodobne poustis script s head a protoze v HEAD jeste neexistuje odkaz v BODY A href, tak zcela logicky zahlasi, ze je objekt null
intimidant
Profil *
odkaz bohužel zatím nemám a není nikdo, kdo by mi s tím poradil...

jenom 1/3? nějak nechápu :-)

jo, sorry. skript volám přes <body onLoad="settimes()">
peta
Profil
intimidant
"jenom 1/3? nějak nechápu :-) "
"jo, sorry. skript volám přes <body onLoad="settimes()">"

- tak treba radek s body onload nikde nevidim. takze, kdo vi, co jsi nam jeste zatajil. Hadam, ze nejmin dalsi 2/3 :) Nahrej na web a dej odkaz na stranky.
- co pise JS konzola, kdyz nechces dat odkaz?

Nejaky priklad z casovacem je na
jakpsatweb - javascript - priklady - datum a cas
nebo muzes zkusit nejaky muj, ale nerucim za vysledky
http://peter-mlich.wz.cz/x/ww/js/JSpriklady.htm
a take muzes zkusit googlecom timer javascript example VYHLEDAT

- jestlize logujes pomoci PHP, pak musis do stranky vzit PHP datum a cas a ne z JS. A tim padem muzes do promenne ulozit cislo a casovac volat za 1000 ms a cislo odecitat. Nikde nepotrebujes tudiz time.getTime();
Navic, kdyz si nastavim na PC 21.11.1985 , tak to bude urcite mensi nez cas, ktery mas ty na serveru a JS mne nikdy neodloguje?
intimidant
Profil *
nepsal jsem celý skript. je to php stránka na cca 300 řádků, vybral jsem jen řádky, které se týkají javascriptu...

ale už jsem to vyřešil, díky za pomoc. nakonec jsem vygooglil nějaký návod v DHTML a tam jsem zjistil, že
<a href='' id='odpocet' style='text-decoration:none; color:#fff;' title='Aktualizovat čas do automatického odhlášení.'> </a>
jsem volal špatně - v odkazu byla jenom mezera, což IE a Opera braly jako nulovou hodnotu a proto neudělaly nic. FF to vzal jako objekt a nacpal tam moji funkci, jak jsem potřeboval...

jinak s časem na serveru a u uživatele to nevadí, tohle je informativní text pro uživatele, že bude odhlášen, pokud nebude pracovat. na serveru běží vlastní timeout kvůli session stealing.
každopádně díky ;o)

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