Pogčedajte punu verziju : Kako da prikazem nesto kada korisnik odlazi sa mog sajta?
ppavlovic
15. 11. 2006., 16:14
Da li je izvodljiovo (verovatno jeste, ali kako) sledece: hocu da covek prilikom napustanja sajta dobije neku poruku tipa popup layer sa dve opcije, da ostane na mom sajtu ili da ga napusti.
Kako da detektujem da neko hoce da ode sa sajta? Treba da se uzme u obzir i zatvaranje prozora/tab-a.
to sam video na maebo.com preko js alert-a .... sigurno ima nacin da negde hvatas event zatvaranja ... samo ja nisma radio nikad nista slicno
Br@nkoR
15. 11. 2006., 17:11
Npr.
window.onunload = function() {
alert('neka poruka');
}
ha ^ ko bi rekao da je toliko prosto :D
Pa nece to da radi... jer ce ti se dizati taj event i prilikom posjeta internim stranicama tog sajta, dakle, pri surfovanju sajtom... ili nece?
ivanhoe
15. 11. 2006., 18:14
pa morao bi da se pamti zadnji click, pa da se proveri koji je link u pitanju i da se ignorise ako je interni
ppavlovic
15. 11. 2006., 18:58
Posle malo guglanja sam nasao sledeci kod koji resava zatvaranje (za koje sam mislio da ce biti teze)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test test</title>
</head>
<body>
<script>
window.onbeforeunload = function() {
if(window.event.clientY < 0 && window.event.clientY < -80) {
alert("Trapping Closing event");
return "\n\nAre you sure you want to navigate off the page?\n\n";
}
}
</script>
</body>
</html>
Ima mali problem... ne radi u Firefox. Deder ko je vicniji sa javascript-om da ga malo prepravi (windows.event.clientY ne radi pod FF).
onbeforeunload moze lepo da resi problem sa ajax stranicama gde se ne osvezava cela stranica, ali za klasicni surf nije dobro resenje.
noviKorisnik
15. 11. 2006., 19:26
onbeforeunload je ie specific event.
ivanhoe
15. 11. 2006., 22:10
<html><head>
<script type="text/javascript">
var zadnji_klik;
window.onunload = function () {
if(zadnji_klik.match(/^https?:\/\//i)) /* ako je externi link */
alert('Aj zdravo!');
}
</script>
</head>
<body>
<a href="HTTP://www.google.com" onclick="zadnji_klik=this.href;"> Neki Externi Link </a>
</body>
</html>
ideja je da externi linkovi imaju obavezno http:// ili https:// na pocetku, i tako ih razlikujem...
akubra
16. 11. 2006., 09:22
ideja je da externi linkovi imaju obavezno http:// ili https:// na pocetku, i tako ih razlikujem...
Nece to moci.
href ce uvek imati http(s), tj protokol na pocetku, odnosno bice kompletan link, bez obzira kako ga ti napises, browser to odradi automatski.
Za ovakve stvari eventualno mozes da proveris host linka:
<a href="page.html" onclick="alert(this.host)">
noviKorisnik
16. 11. 2006., 10:16
Samo malo da teoretišem, obzirom na postavku problema ...
hocu da covek prilikom napustanja sajta dobije neku poruku tipa popup layer sa dve opcije, da ostane na mom sajtu ili da ga napusti.
... znači, u praksi bi za ovo trebao Confirm a ne Alert. Međutim, koliko teoretski znam - Unload je događaj napuštanja stranice i napuštanje stranice ne može da se spreči. BeforeuUnload može ovo da reši jer može da otkaže Unload jer se i dešava pre njega - ali je, već rekoh, IE specific.
Ilija Studen
16. 11. 2006., 10:42
Samo malo da teoretišem, obzirom na postavku problema ...
... znači, u praksi bi za ovo trebao Confirm a ne Alert. Međutim, koliko teoretski znam - Unload je događaj napuštanja stranice i napuštanje stranice ne može da se spreči. BeforeuUnload može ovo da reši jer može da otkaže Unload jer se i dešava pre njega - ali je, već rekoh, IE specific.
A kako onda radi ta funkcija u GMailu? Klikni na Compose, izmeni poruku, ali pre nego što odradi auto save i klikni da zatvoriš tab.
noviKorisnik
16. 11. 2006., 12:27
Onda ima gde da se buši - jednostavno virneš u gmailov kod ;-)
U kom mi veku živimo? Evo malo pretražih - ovo je staro više od 2 i po godine (http://www.mozilla.org/status/2004-03-01.html)
this version of Mozilla adds support for the onBeforeUnload event
... samo - ovaj primer s gmailom mi ne pali u Operi ...
Ilija Studen
16. 11. 2006., 12:38
Znači onBeforeUnload? Cool...
jednostavno virneš u gmailov kod ;-)
Imaj milosti!!! :D
ivanhoe
16. 11. 2006., 16:52
Nece to moci.
href ce uvek imati http(s), tj protokol na pocetku, odnosno bice kompletan link, bez obzira kako ga ti napises, browser to odradi automatski.
pa dobro onda moze da se proveri da li je to domen sajta:
if( zadnji_klik.indexOf('google.com') >= 0 ) {...}
sjovanovic
16. 11. 2006., 21:46
Onda ima gde da se buši - jednostavno virneš u gmailov kod ;-)
Nece se mnogo sta videti u GMail kodu. GTW je java framework a za GMail se koristi verzija koja nije javno dostupna. U pozadini svega je kompajliran Java kod
noviKorisnik
17. 11. 2006., 00:07
Zašto onda meni radi GMail iako nisam instalirao JRE?
Ilija Studen
17. 11. 2006., 00:13
Zašto onda meni radi GMail iako nisam instalirao JRE?
GWT Java kod prebacuje u JavaScript. Developeri rade u Javi i ne moraju da se zamaraju sa JS-om.
andrej
17. 11. 2006., 00:46
Mislim da Dejan karikira to što je sjovanovic rekao da se neće mnogo toga videti. I mislim da je u pravu, jer sav kod koji vidi browser mogu videti i korisnici (developer).
Ilija Studen
17. 11. 2006., 08:27
Mislim da Dejan karikira to što je sjovanovic rekao da se neće mnogo toga videti. I mislim da je u pravu, jer sav kod koji vidi browser mogu videti i korisnici (developer).
:1027: Isp'o glup :)
vBulletin® v3.6.8, Copyright ©2000-2024, Jelsoft Enterprises Ltd.