[JavaScript] Jak przypisać zmienną


(Podeszwaaaaaa) #1

Witam!

Ponieważ nie mogę sobie z tym poradzić mam do was takie pytanko..

Jak w poniższym skrypcie zmienić, aby nie wyświetlał on czynności w ale od razu w skrypcie?

Na przykład aby było to przypisane jakiejś zmiennej.

Za sekundy zostaniesz przekierowany na stronę główną.

[/code]

Będę bardzo wdzięczny za pomoc.

Pozdrawiam!


(Pablo_Wawa) #2
  1. Możesz w nagłówku strony HTML użyć przekierowania strony po ustalonym czasie: http://en.wikipedia.org/wiki/Meta_refresh

  2. To powyższe nie spowoduje, że licznik się będzie odliczał, więc jak chcesz go mieć, to nic nie poradzisz.

  3. Odliczanie w JavaScripcie może nie być dokładnie zsynchronizowane z przekierowaniem, ale to chyba nie jest problem

  4. Skrypt w JS można było napisać bardziej elegancko, ale jak ten Ci działa, to go nie ruszaj.

  5. Nie da się automatycznie połączyć zmiennej w JS z polem na stronie HTML - musisz w kodzie JS użyć stosownej instrukcji (co sekundę).


(Podeszwaaaaaa) #3

Skrypt ma za zadanie odliczać od danej liczby sekund do zera czyli na przykład od 15 do 0 a potem wykonywać if..

Mi dokładniej chodzi o to by skrypt działał bez "" tak by po uruchomieniu samego skryptu włączyło się odliczanie.


(Pablo_Wawa) #4

Tak jak napisałem w pkt. 5 nie ominiesz tego - skrypt w JS musi wiedzieć, gdzie ma wpisać właściwą liczbę sekund. Jakiś element na stronie HTML musisz wskazać, gdzie będzie wpisywane (przez JS) sekundy. Taka metoda jest jedną z najprostszych, można to zrobić nieco inaczej, ale to już jest skomplikowane (łażenie po drzewie DOM).


(Podeszwaaaaaa) #5

No dobra ale jak to wyświetlić?

Bo próbuje zrobić tak ale nic z tego:

test.htlm

Za sekundy zostaniesz przekierowany na stronę główną.

[/code]




test.js

[code] function odliczaj(o,sek, link){ if(sek<60) document.getElementById(o).innerHTML=sek else document.getElementById(o).innerHTML=Math.floor(sek/60)+":"+sek%60 if(sek>0) setTimeout('odliczaj(\"'+o+'\",'+ --sek +',\"'+ link+'\")',1e3) else window.location.href=link } odliczaj("sekundy",15,"link_gdzie_ma_przekierować") // 15= ilosc sekund od ktorej bedzie odliczac

Dodam że muszę mieć to w 2 plikach (tzn. .html i .js)


(Pablo_Wawa) #6

Generalnie wszystko masz dobrze, ale wywołanie funkcji odliczaj (na samym dole) powinieneś wywołać DOPIERO po załadowaniu całej strony HTML, np. tak:

window.onload=function () { odliczaj("sekundy",15,"link_gdzie_ma_przekierować"); } // 15= ilosc sekund od ktorej bedzie odliczac