Kako zatvoriti tab i/ili prozor (ukoliko ima samo jedan tab)?

ima 2 sata pokusavam naci na google-u ekakav javascript kojim mogu zatvoriti tab na prozoru ili cijeli prozor - ukoliko prozor ima samo jedan tab. ne mogu naci nista. koliko vidim nema scripte koja radi i za IE i FF i Safary i …

razlog za koji ovo trebam (mozda se cijela stvar moze rijesiti drugacije…) je sljedeca: posjetilac dodje na stranicu i treba da se logira. posto je zaboravio sifru u zato predvidjeno polje na login strani unese svoj email. nakon sto submit email, dobije email u kojem je link na koji treba da klikne. kad klikne otvori se novi tab/prozor i posjetilac unese novi password. E, sada treba da zatvorim taj tab/prozor koji je otvoren pomocu linka u email-u i time se “vrati” na login stranicu.

imal’ ko kakvu ideju?

zar to nije obicni redirect?

redirect? kako to mislis?

ako sam dobro shvatio, korisnik klikne link u mailu koji ga salje na stranicu za promjenu pass-a. korisnik promijeni pass, ide sacuvati i samo ga proslijedi natrag na stranicu u tom istom tab-u. znaci napravis php skriptu koja naravno procesira te podatke koje primi i preusmjeri ga na index.

[code]<?php

header( 'Location: “nova lokacija” ) ;

?>[/code]
nasao sam i javascript redirect http://www.tizag.com/javascriptT/javascriptredirect.php

[quote=Wizz]ako sam dobro shvatio, korisnik klikne link u mailu koji ga salje na stranicu za promjenu pass-a. korisnik promijeni pass, ide sacuvati i samo ga proslijedi natrag na stranicu u tom istom tab-u. znaci napravis php skriptu koja naravno procesira te podatke koje primi i preusmjeri ga na index.

[code]<?php

header( 'Location: “nova lokacija” ) ;

?>[/code]
nasao sam i javascript redirect http://www.tizag.com/javascriptT/javascriptredirect.php[/quote]
na zalost nije tako jednostavno. a jos gore je da pokusam objasniti cijelu situaciju. jer neke stvari ni meni nisau najjasnije. u cijeli sistem podrske koju nudi firma u kojoj radim je upetljan i DotNetNuke CMS i “ko-operaciji” sa mojim php/mysql dijelom koji ja razvijam…

medjutim, u 90% odgovora koje sam nasao se govori da ako tab/prozor nije otvoren sa javascript-om onda se ne moze ni zatvoriti pomocu javascript-e. plus razlike u browserima… mislim da cu morati traziti totalno novo rjesenju… :frowning:

Ako sam te dobro skonto ti zelis da otvori link u mailu, ukuca novi password i kad udari OK da mu se zatvori taj prozor (od linka u mailu) a da u prvom prozoru (gdje se registrovo) bude logiran. To je fina ideja ali mali broj ljudi ce taj prvi tab zapravo ostavit otvoren jer su naviknuli da u mailu dobiju link, kliknu ga i nastave koristiti taj novi tab.

Ako si bas uporan u tome da zatvoris taj prozor (sto je imho losa varijanta) pogledaj http://www.codeave.com/JavaScript/code.asp?u_log=7014 mada taj pristup ti je very funky.

to je malo cudan pristup. znaci da otvoris sesiju u vec postojecem tabu gdje se zapravo stranica ucitala. al ako zatvore taj tab ili pristupe mailu preko tog taba samo korisniku kompliciras zivot jer ce on morati pristupati rucno stranici nanovo. jel te netko mozda natjerao na to?

Ne. hajd’ da probam “konkretnije”: mi (firma u kojoj radim) nudimo servis obrade podataka, clanarina, clanstva, dogadjanja, shopping cart,… za non-profitne organizacije. sav servis se odradjuje na nasem serveru. recimo, nesto kao http://nas-servis.com/npo_klijent. NPO uglavnom imaju svoje stranice koje su “domace izrade” ili neki od CMS-ova. Na svojoj stranici oni postave link da se vrsi registrovanje za neko predavanje, http://nas-servis.com/npo_klijent/registracija.php?id=7a6f76at76d5a9, gdje je id kriptovan id klijenta, id predavanja (event), i jos par podataka - uglavnom da sam siguran da je prava osoba na pravom mjestu i da neko ne pokusava otvoriti tudji “dogadjaj”. znaci, posjetilac ode na http://npo_klijent.org, klikne na link i dodje na http://nas-servis.com/npo_klijent/registracija.php?id=7a6f76at76d5a9, odabere sta ga interesuje i onda se treba logirati da bi platio. Medjutim, posto je “zaboravio sifru” on treba da unese svoju email adresu u mali formular ispod login formulara i da je posalje. E, hoce li sada zatvoriti tab/prozor ili ne to me toiko i nije briga jer to ne mogu da kontrolisem u svakom slucaju. ali se nadam da nece zatvoriti.
U email-u klikne na link koji otvara drugi tab/prozor i u kojem je formular gdje unosi novu sifru. Nakon unosa dobije poruku da je nova sifra uspjesno pohranjena. Ako vec na toj drugoj stranici/tabu se pokusa logirati on ce uspjeti i nastaviti gdje je stao na prvom tabu bez problema, bez obzira jel’ prvi tab zatvori ili ne jer oba taba koriste iste session varijable.

IDENTICAN scenario se desava ako posjetilac umjesto preko shopping-a pokusa da se logira na profile manager da “koriguje” svoje podatke, pregleda narudzbe, ostavi neke poruke i sl. cijeli login/password kod je jedna klasa koja se ucitava na stranicu u kojoj se nalazis.

Medjutim, neki nasi klijenti koriste DotNetNuke CMS (ne pitajte nista…). I ako je slucajno zaboravio sifru onda MORA obaviti svu ovu proceduru preko nase stranice. Znaci, najbolje rjesenje bi bilo da nekako “zapamtim” odakle je posjetilac dosao na “forgot password?” i nakon sto je novi password pohranjen - odvesti posjetioca na tu prethodnu stranicu. Medjutim, moj sef, kojemu je vrijeme “najbitniji faktor u razvoju” nece da gubim vrijeme na tome nego jednostavno da “zatvorim” taj tab/prozor i ostavim posjetioca da se ispocetka logira. Ako nije zatvorio prvi tab/prozor jos bolje za njega. A ako jeste - sve ispocetka.

Znam da je ovo daleko od korektnog nacina ali pokusavam sebe sto bolje sacuvati od glavobolja jer nakon odredjenog vremena ova politika “vazno je da je brzo a ne da je kvalitetno” uvijek nam se vrati sa problemima.

Koliko se radi pogresno da ilustrujem jos jednim primjerom: ja sam “zadnji” dosao u ovu firmu i ostali su tako reci od samog pocetka. Tako da se ja uglavno nista ne pitam. Drugi, “stariji” programer je zaduzen za jednu vrstu korisnika a ja za drugu. Obojica radimo isti servis i obradjuejmo iste ljude/korisnike. Taj tip je ubjedio sefa kako je najbolje da on ima svoju bazu podataka a ja svoju. A posto je moja DB 65% identicna njegovoj onda da ja vrsim non-stop update citajuci informacije sa negove DB??? Normalizacija? Sta je to? Tako da ja uvijek moram da kodiram sve 25-45% vise - da bih ukomponovao i update sa njegove DB. Sef zna da sam ja u pravu (konacno se raspit’o malo okolo o svemu ovome) ali se pazi sa ovim starim programerom tako da vec godinu dana je ovo tabu tema. I svaki moj zahtjev da se “malo organizujemo” prolongira…

Ali da vas ne tusim vise sa svojim problemima… :slight_smile:

ovaj forum mi sve vise sluzi k’o rame za plakanje neg’…
:smiley:

mislim da je ovo ostario kod :slight_smile:
nesto slicno sam probavao i ne radi na FF. Mozda radi na IE.
ali, kako sam nasao na drugim stranicama, tab/prozor mora biti otvoren opmocu javascript-a da bih ga mogao zatvoriti pomocu javascript-a. :frowning:

ma zapravo je dobro porazgovarat sa ljudima u svom rangu. dojadilo je i meni korigirati program radi iracionalnih zahtjeva korisnika ili sefova al uvijek nesto treba izmijeniti, uvijek nesto treba dodati, to je surova realnost. imam istih problema trenutno. neg da se vratimo na temu. zelis da, kad se korisnik vraca na stranicu, ga baci na onaj dio stranice gdje je zapeo bio? postavis cookie mozda? to je malo brute al privremeno rijesenje. to sto si spomenuo da koriste oba iste session varijable znacilo bi sljedece, da je pokrenuta sesija u trenutku pohrane passworda i prilikom novog pristupanja stranici ili u slucaju refresha korisnik je logiran jeli tako? ja vidim tu problem rijesen. btw, dopustanje slobodnog upisa mail adrese daje pristup svakom kome padne na pamet da se domogne tog accounta. ne znam jesi li samo primjer davao, nadam se da ne mislis ozbiljno ubaciti formu za mail ispod login-a. obicno se mail vuce iz baze tako sto je vezan za registracijske podatke. u slucaju zaboravljene lozinke treba se navesti username. tada se nova lozinka automatski generira i vrijedi do nove promjene. salje se na mail gdje se nalazi link na login stranicu. user se zatim logira i daje mu mogucnost promjene lozinke na svom profile manageru sto je logicno, ali ne mora ga prebaciti na to nego korisnik ima mogucnost nastaviti gdje je stao.

Iz svih tih opisa i dalje ne vidim zašto ti uopšte treba novi prozor, zašto to ne može sve biti isti prozor i isti tab i da se nekim običnim redirectima korisnik šalje tamo-vamo?

kad kliknes na link u email-u on ti otvori noi tab/prozor. koliko ja znam, nemoguce (osim mozda uredjivanjem setting-a vlastitog browser-a) je da se link otvori u nekom vec postojecem prozoru, zar ne?

isto kao da ciljas izivcirati korisnike :slight_smile:

Da ali otkud ti znaš da korisnik nije nakon klika na zahtjev za promjenu šifre (koji je poslao taj mail) zatvorio taj web browser prozor?

btw kod gmaila sam viđao npr kad kliknem da nekome pošaljem mail ima onaj popup/detach u desnom gornjem ćošku, koji nakon sto u tom istom prozoru kliknem na send, zadrži se neko vrijeme i onda se taj popup sam ukine, možda o tome pričate, nako uletio sam malo nenadano :wink: al možda to tražite

ps:
jes da sam uključio onaj google lab feature “undo send”, ali sve bi se to trebalo moći pođoniti (CTRL + U) :slight_smile:

Da ali otkud ti znaš da korisnik nije nakon klika na zahtjev za promjenu šifre (koji je poslao taj mail) zatvorio taj web browser prozor?[/quote]
btw to ne utiče na ovo iz mog prethodnog posta

[quote=nidla]btw kod gmaila sam viđao npr kad kliknem da nekome pošaljem mail ima onaj popup/detach u desnom gornjem ćošku, koji nakon sto u tom istom prozoru kliknem na send, zadrži se neko vrijeme i onda se taj popup sam ukine, možda o tome pričate, nako uletio sam malo nenadano :wink: al možda to tražite

ps:
jes da sam uključio onaj google lab feature “undo send”, ali sve bi se to trebalo moći pođoniti (CTRL + U) :)[/quote]
da ali citav gmail je napisan u javascript. barem onaj estetski dio.

@nidla problem i jest u tome da javascript može zatvoriti prozor ako ga je javascript otvorio (to detach dugme), ali ako je prozor otvoren iz druge aplikacije (mail reader) to čak ne mora biti isti browser, može biti jedini prozor itd.

Jedino elegantno rješenje koje vidim je da kad korisnik klikne na link “Zaboravio sam šifru” dobije poruku “Dobili ste mail. Sada zatvorite ovaj prozor.” pa u mailu link koji će otvoriti novi prozor i taj će se redirectovati na login stranicu ili šta već.

[quote=vedran]@nidla problem i jest u tome da javascript može zatvoriti prozor ako ga je javascript otvorio (to detach dugme), ali ako je prozor otvoren iz druge aplikacije (mail reader) to čak ne mora biti isti browser, može biti jedini prozor itd.

Jedino elegantno rješenje koje vidim je da kad korisnik klikne na link “Zaboravio sam šifru” dobije poruku “Dobili ste mail. Sada zatvorite ovaj prozor.” pa u mailu link koji će otvoriti novi prozor i taj će se redirectovati na login stranicu ili šta već.[/quote]
ne radi kako treba. kada posjetilac dodje prvi put na formular dobije spisak ponuda/dogadjanja/stvari/… odabere sta hoce i onda klikne na “continue” i dolazi na “login” stranicu koja sadrzi i “forgot your passwrd” dio. e, ako zatvori taj prozor onda ce se informacije koje je odabrao izgubiti, tj. kada klikne na link u email-u i unese nover sifre - mora ponovo odabrati stvari sa prve stranice, jel’ tako?