Autor Zpráva
mackopu
Profil
Ahoj, neznáte nějaký způsob, jak přinutit prohlížeč, aby po načtení stránky vypsal část jejího obsahu ihned, zatímco další část (uzavřenou např. do elementu) až po uplynutí zadané doby?
Představte si to asi jako ve hře Chcete být milionářem - nápověda publika - probíhá odpočet a graf s výsledky se zobrazí až po jeho ukončení.
Marty
Profil
No udělal bych to tak, že tomu divu bych nastavil display: none, pak bych spustil časování a po jeho uplynutí bych tomuto divu přes js zrušil nastevení display, tak by se zobrazil.
Po celou tuto dobu, by ale zůstal text načten ve zdrojovém kódu, a to nevím zda ti to nevadí...
mackopu
Profil
Nevadí, vůbec. Jakou to má podporu v prohlížečích? A mohl bys mi napsat ukázku? (Na JS jsem slabej a v PHP to nejde).
mackopu
Profil
Ještě něco - zatím jsem zpáchal tohle, ale nebere to Firefox :-(
<SCRIPT LANGUAGE="JavaScript"> 

<!--
function vypis(id)
{
var str;
str = "Ahoj!";
document.getElementById(id).innerHTML = str;
}
setTimeout("vypis('item')", 5 * 1000);
//-->
</script>

<div id="item"></div>
Marty
Profil
Opera 7.01, Mozzila, Netscape 7.1, Firebird a i Firefox a ve všem mi to běhá...
mackopu
Profil
Sorry, už to vidím, mě taky :-) Myslel jsem původně nižší verzi Netscape. A je mi taky jasný, že s podporou takovejch parádiček to bude vždycky problematický. Ale to s tím display: none by mě stejně zajímalo...
habendorf
Profil
Ale to s tím display: none by mě stejně zajímalo...

No jednoduše, nastavíš prvku display:none a po uplynutí požadované doby proběhne
document.getElementById(id).style.display=block;
mackopu
Profil
Díky moc :-) Tím bych považoval problém za vyřešený.
p. etruska
Profil *
Tak sem něco našel,ale místo odpočtu to zobrazuje jenom bílej pruh. Má to vypadat takhle: http://www.linuxsoft.cz/script/165/
ale vypadá to takhle: http://paulosetruska.wz.cz/index2.php . tady je kód
<html> 

<head>
<title>Java Script ze stránky - www.jaknaweb.com</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="startclock()">

<SCRIPT LANGUAGE="JavaScript">
var timerID = null;
var timerRunning = false;
function showtime() {
today = new Date();
BigDay = new Date("december 24, 2005")
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
hrsLeft = hrsLeft;
e_minsLeft = (e_hrsLeft - hrsLeft)*60;
secLeft = Math.floor(e_hrsLeft);
secLeft = Math.floor((e_minsLeft - minsLeft)*60);
secLeft = secLeft;
Temp3='Do 24. prosince 2005 zbývá '+daysLeft+' dní, '+hrsLeft+' hodin, '+minsLeft+' minut, '+secLeft+' sekund.'
document.frm.left.value=Temp3;
timerID = setTimeout("showtime()",1000);
timerRunning = true;
}
var timerID = null;
var timerRunning = false;
function stopclock () {
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
function stopClock() {
stopclock();
return;
}
function startclock () {
stopclock();
showtime();
}
// -->
</script>

<p align="center"><center>
<form name="frm"><input type="textarea" name="left" size="70"></form>
</center></p>

</body>
</html>
p. etruska
Profil *
sory
Leo
Profil
S tim, ze znaly uzivatel se koukne do kodu a ma odpovedi hned, Leo
p. etruska
Profil *
jenomže já nejsem znalej uživatel :-( kde je chyba?
peta
Profil *
p. etruska
mno, ja bych menil class prvku, s tim se da menit vice vlastnosti naraz, nejen display:block, none.
pr: http://www.volny.cz/peter.mlich/hry/test/testiq2.htm

unika mi smysl techto 4 radku?
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);

e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
podle mne jsou totozny :)

unika my smysl teto funkce, ktera se nepouziva a odkazuje na podobnou
function stopClock() {
stopclock();
return;
}
neco jako
function a() {}
function b() {...}
a();b();
spustim funkci ve ktere nic neni a pak tu moji :)

Mno, a LEO mluvi o tomto nesmyslu...

<body bgcolor="#FFFFFF" text="#000000" onLoad="startclock()">

<script>
startclock()
</script>

Jak muzes spustit neco pri nacitani dokumentu, kdyz to jeste neexistuje?
Spust si prosim te Firefox, nebo operu, najdi si v menu Javascript konzoli a ta ti musi hlasit na tom a tom radku chybu.
Totez IE, dole, jak mas vlevo takovy zluty vykricnik, to si rozklepnes a das zobrazit podrobnosti.

Zkoumal jsi priklady JS na jaksatweb?
jakpsatweb - Javascript - priklady
p. etruska
Profil *
hmm zajímavý.Ale ten skript sem nepsal já(už podle toho příspěvku předtim)
p. etruska
Profil *
a navíc ten kód funguje (na tý stránce jak sem napsal)
peta
Profil *
p. etruska
kdyz funguje, v tom pripade neni, co resit.

bych si dovolil komentar k
http://paulosetruska.wz.cz/index2.php
- schazi tam odborna ruka validatoru, treba
www.w3c.org
www.htmlvalidator.com/lite
protoze tam mas 2 a vice tagu body, body a html se muzou vyskytnout pouze 1x
a dalsi a dalsi chyby.

Konzola JS mi hlasi:
Chyba: event is not defined
Zdrojový soubor: http://paulosetruska.wz.cz/index2.php
Řádek: 120

Cili na radky 120 je nejaky problem s necim, zvanym EVENT
zrejme by to mohli byt tyto radky, ale to mi zrovna tento validator nezobrazuje cisla radku
(ns)?window.captureEvents(Event.MOUSEMOVE):0;
function Mouse(evnt){
ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFrom MouseY;
xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;
p. etruska
Profil *
Tam ten kód nefunguje. Ale už sem to vyřešil. Stačilo jen upravit jeden script.



<script language="JavaScript">

<!-- Begin
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov ","Dec");
function countup(yr,m,d) {
var today=new Date();
var todayy=today.getYear();

if ((navigator.appName == "Microsoft Internet Explorer") && (todayy < 2000))
todayy="1" + todayy;
if (navigator.appName == "Netscape")
todayy=1900 + todayy;


var todaym=today.getMonth();
var todayd=today.getDate();
var todaystring=montharray[todaym]+" "+todayd+", "+todayy;
var paststring=montharray[m-1]+" "+d+", "+yr;
var difference=(Math.round((Date.parse(paststring) - (Date.parse(todaystring)) )/(24*60*60*1000))*1);

document.write("Zbývá přibližně" + difference + "dnů");

}
countup(2005,10,30); // Date in format: (year,month,day)
// End -->
</script>
Toto téma je uzamčeno. Odpověď nelze zaslat.