» »

Javascript/PHP vprasanje

Javascript/PHP vprasanje

poweroff ::

Nov oddelek da ali ne, jaz imam eno mesano javascript/PHP vprasanje.

Nekateri so mi ze odgovarjali v drugih temah, vendar zadeve NE DELUJEJO.

Torej...
Torej, rečem (pred in za html oklepaje sem dal presledek, če ne forum zadevo požre):

echo" < HTML > < HEAD >
< SCRIPT LANGUAGE=\"JavaScript\" >
< !-- Begin
function popupWin() {
text = \" < html > < head > < title > Obvestilo < /title > < body > \";
text += \" < center > \";
text += \" < font face=Verdana size=2 > To okno se bo samodejno ugasnilo v 5 sekundah. < /font > \";
text += \" < /center > < /body > < /html > \";
setTimeout(\"windowProp(text)\", 1000); // delay 1 second before opening
}
function windowProp(text) {
newWindow = window.open(\"\",\"newWin\",\"width=300,height=150\");
newWindow.document.write(text);
setTimeout(\"closeWin(newWindow)\", 5000); // delay 5 seconds before closing
}
function closeWin(newWindow) {
newWindow.close(); // close small window and depart
}
// End -- >
< /script >

< /HEAD > < BODY BGCOLOR=\"#FFFFFF\" text=\"#000000\" >
";

POTEM PA:

// Did user respond to a questionnaire?
if ($cookie_response == 0) {
echo " < BODY onLoad=\"popupWin()\" > \n < b > Obiskovalec še ni izpolnil
vprašalnika, zato prikažemo okno. < /b > < br > ";
}
else {
echo "\n < b > Obiskovalec je že izpolnil vprašalnik, ali pa v tem sessionu ne
bo odgovarjal - z oknom ga ne motimo več. < /b > < br > ";
}

Zdaj bi pa rad sledeče:
1. tam, kjer je besedilo "To okno se bo samodejno ugasnilo" bi rad vstavil
link.
Ja, boste rekli, samo a href reci. Ni tako preprosto. Če dam dvojni narekovaj, ne deluje (ker potem JS razume kot da je konec spremenljivke text!!!). Če dam enojnega, pa tudi ne! PHP enojni narekovaj zamenja z dvojnim.
Če prej zaključim PHP, vmes napišem to javascript kodo in PHP potem ponovno vkljucim ( > ...javascript... < ?), prav
tako ne deluje!
Če naredimo language=javascr... SRC=file.js, tudi ne deluje!!!

Pa se to: uporabljam session, in php avtomatsko doda vsakemu linku sessionID - in narekovaje spremeni. Morda je tukaj resitev problema (dvomim).

2. Rad bi da ko uporabnik klikne na to povezavo, (recimo na nek gumb), da se resetira setTimeout. Nekaj v stilu clearTimeout(), samo ne vem kako bi ga prilepil na obstojece okno - če klikne. Sem že poiskušal, pa ne deluje...

Zna kdo odgovoriti?

rasta ::

1. Lahko izpustiš narekovaje in maš: <a href=http://www.slo-tech.com>To okno se bo samodejno ugasnilo v 5 minutah.</a>;
ali pa narediš: <a href=".'\"http://www.slo-tech.com\"'.">To okno se bo samodejno ugasnilo v 5 sekundah.</a> ali pa <a href=\\\"http://www.slo-tech.com\\\">To okno se bo samodejno ugasnilo v 5 sekundah.</a>. Meni delajo vsi trije načini.

2. Če te prav razumem, ko klikne na povezavo, se ti timer ustavi? To narediš takole:
<a href="javascript:clearTimeout(ime_timercka);">, ime_timercka je to, kar vrne funkcija settimeout (ime_timercka = settimeout(...)). Za gum samo zamenjaš, da namesto href pri linku, daš kodo v onclick.
To ti samo ustavi timer, da pa spet začne odštevat pet sekund, pa moraš potem spet funkcijo dat za to.

Zgodovina sprememb…

  • spremenil: rasta ()

poweroff ::

Hvala, prva zadeva deluje (tisto s tremi ///), drugo glede timeouta pa ne.

Dam torej takole
WindowTimeout = setTimeout("closeWin(newWindow)", 5000);

V spremenljivko text pa:
< a href=\"javascript:clearTimeout(WindowTimeout);\" > hvala < /a >

PA ne dela. Link se pojavi, dela pa ne...

Zgodovina sprememb…

  • spremenilo: poweroff ()

rasta ::

> PA ne dela. Link se pojavi, dela pa ne...
Dobiš kakšno sporočilo o napaki? Timerja sploh ne ustavi? V tem primeru preveri, kako je z globalnimi in lokalnimi spremenljivkami. Kam pa si sploh vstavil to kodo? V link iz prvega primera?

poweroff ::

Ne, ne dobim nobenega sporocila o napaki, vse dela kao OK, samo ko kliklnem gumb - se ne zgodi nic.

Evo, posiljam celotno HTML kodo (skopiraj v HTML dokument in pozeni). Pred tem je treba zamenjati " < " z "<" in " > " z ">" (predsledke pred oklepaji odstranis)

< HEAD >

< SCRIPT LANGUAGE="JavaScript" >
< !-- Begin
function popupWin() {
text = " < html > \n < head > \n < title > Obvestilo < /title > \n < body > \n";
text += " < center > \n";
text += " < font face=Verdana size=2 > Klikni: < br > < /font > ";
text += " < button type=\"button\" onclick=\"clearTimeout()\" > < b > STOP! < /b > < /button > < /center > \n < /body > \n < /html > \n";
setTimeout('windowProp(text)', 1000); // delay 1 second before opening
}
function windowProp(text) {
newWindow = window.open('','newWin','width=300,height=150');
newWindow.document.write(text);
setTimeout('closeWin(newWindow)', 5000); // delay 5 seconds before closing
}
function closeWin(newWindow) {
newWindow.close(); // close small window and depart
}
// End -- >
< /script >

< /HEAD >

< BODY onLoad="popupWin()" >

< center >
This demo will open a small popup window 3 seconds after the page is loaded and
close the window after it has been open for 5 seconds.
< /center >

Tole me pa spravlja ob pamet...

rasta ::

Funkiciji clearTimeout moraš podati kot argument handle od timerja, ki ga želiš uničiti. Ker pa je tvoj button v drugem oknu, nimaš hadnle do timerja.
Ena rešitev je, da v novem oknu poženeš timer, ki ga po 5 sekundah zapre (<body onLoad="ime_timerja = setTimeout('window.close()',5000)">) in potem daš na onclick v tem gubu "clearTimeout(ime_timerja)". Tole je še najenostavnejša rešitev.
Dogodek onclick pa bi verjetno lahko prestregel tudi iz parent okna, ker imaš handle on novega. newWindow.document.all.gumb.onClick mi ne dela, sproži se takoj ko se okno ustvari. To pa že presega meje mojega znanja Javascripta ...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Slo-Tech userscripts

Oddelek: Izdelava spletišč
174955 (2407) jype
»

Redirect strani?

Oddelek: Izdelava spletišč
71454 (1243) Road Runner
»

Event na linku, zelo tricky!

Oddelek: Izdelava spletišč
61208 (1035) Phoebus
»

Kako se tole naredi?

Oddelek: Izdelava spletišč
261417 (1117) njok
»

mysql help

Oddelek: Izdelava spletišč
81989 (1785) poweroff

Več podobnih tem