Avatar billede clausga Nybegynder
05. november 2006 - 14:50 Der er 9 kommentarer og
1 løsning

Rigtig måde at åbne popup vindue på

Jeg har en side med en form hvor man kan instaste nogle oplysninger... navn, adresse osv.

i bunden af siden har jeg et link hvor der kan åbnes et popup vindue med nogle salgs og leveringsbetingelser

<a href=side.php#pop" onClick="window.open('salg.php','popup', 'scrollbars, width=645,height=525')">åben</a>

ER dette den rigtige måde at åbne et POPUP vindue på ? og selvom man åbner popup vinduet så bliver det man har udfyldt i de forskellige felter (navn, adresse osv...) vel der ???
Avatar billede Slater Ekspert
05. november 2006 - 15:21 #1
Ja, bortset fra at du med en href="" OGSÅ går til en ny side i hovedvinduet. Så bliver det indtastede naturligvis væk. Desuden mangler du lige et "-tegn efter href=.

Den mest korrekte måde at åbne et popupvindue i dag, er

<a href="http://www.google.com" onclick="window.open('http://www.google.com', null, 'width=200,height=400');return false;">KLIK!</a>

(naturligvis lavet om til dine mål og target side)

Det med at putte adressen både i href og i onclick, med en "return false" efter onclick functionen, gør at man også kan åbne i en ny tab (mellemklik) i Firefox og Opera.
Avatar billede clausga Nybegynder
05. november 2006 - 15:26 #2
Jeg er ikke helt med ;) side.php er den side hvor popup vinduet åbnes fra(med form felter), og salg.php er den side som skal åbnes i popup vinduet, så er det vel rigtigt nok ?
Avatar billede Slater Ekspert
05. november 2006 - 15:31 #3
Hvis side.php er den side der loades fra, er der ingen grund til at skrive href="side.php#pop", hvis den skal scrolle ned til et anchor der hedder "pop". Så kan du bare skrive href="#pop".

Men ved ikke at gøre som jeg siger, fjerner du muligheden for at Firefox/Opera brugere kan åbne popup vinduet i en ny tab i stedet for et nyt vindue, som de fleste foretrækker, og det kan irritere nogle. Men det er selvfølgelig dit valg :)
Avatar billede clausga Nybegynder
05. november 2006 - 15:36 #4
Jo vil selvfølgelig lave det så rigtig så muligt, men hvor er forskellen ? er det );return false;"> jeg mangler og sætte ind ?

Jeg bruger <a href="<? echo $_SERVER["REQUEST_URI"]; ?>#pop" nu da den skal scrolle ned til #pop ;)....men jeg kunne nøjes med at skrive #pop siger du ?
Avatar billede Slater Ekspert
05. november 2006 - 15:47 #5
Ja, du kan nøjes med "#pop". Det er jo en del nemmere, når du ligefrem har gang i PHP'en for at hente siden ;)

Og forskellen på din og min udgave, er for det første det "return false;" men også at adressen til den nye side står i både href="" (som du desværre bruger til noget andet), og i onclick="".

Det er selvfølgelig svært at gøre begge dele, og du skal endelig ikke bare tilføje "return false;" uden det andet.

Når du skal bruge den scroll-ned funktion, er der ikke så meget andet at gøre, end at droppe tab-brugerne, med mindre man skal over i noget script til at scrolle. Hvilket er besværligt og inkompatibelt.

Så alt i alt skal det vil bare se sådan ud:

<a href="#pop" onclick="window.open('salg.php', 'popup', 'scrollbars=yes, width=645,height=525')">åben</a>
Avatar billede clausga Nybegynder
05. november 2006 - 15:53 #6
grunden til at jeg bruger #pop er at linket til salgsvilkår er et stykke nede på siden, og ellers hopper siden jo til toppen når der bliver klikket på linket!!!

<? echo $_SERVER["REQUEST_URI"]; ?>#pop bruger jeg fordi det er forskelligt om siden hedder side.php?info=navn eller side.php?info=fejliadresse osv.... men derfor kan jeg måske stadig godt nøjes med bare at skrive #pop ?!!
Avatar billede Slater Ekspert
05. november 2006 - 16:03 #7
Ah, det er altså ikke fordi siden skal scrolle ned, men bare fordi den skal blive hvor den er, når der bliver klikket? SÅ er det noget andet. Så skal du bruge min metode.

Og ja, du kan bruge "#pop" lige meget hvad querystringen er. Den bliver på samme side, uden at forsøge at skifte.

Prøv med det her link:

<a href="salg.php" onclick="window.open('salg.php', 'popup', 'scrollbars=yes, width=645, height=525');return false;">åben</a>

Det burde gøre hvad du vil have, og oven i købet gøre Tabbrowser-brugere glade.
Avatar billede clausga Nybegynder
05. november 2006 - 16:11 #8
Ja det virker :)......men er det så sikkert det virker i ALLE browsere/nye/gamle.... at den ikke vil skifte hovedsiden(hvor man åber popup fra) til salg.php, da det står i href=salg.php ???
Avatar billede Slater Ekspert
05. november 2006 - 16:16 #9
Hmm, nej i princippet, hvis man har slået javascript helt fra, vil den åbne den nye side i det gamle vindue. Men det kan nemt korrigeres, ved at tilføje et target.

<a href="salg.php" target="_blank" onclick="window.open('salg.php', 'popup', 'scrollbars=yes, width=645, height=525');return false;">åben</a>

Brug det link så. Hvis man har slået javascript fra (enten pga en MEGET gammel browser, eller fordi man har NoScript installeret til i Firefox etc), vil den åbne siden i et nyt vindue stadigvæk, bare et hvor du ikke kan kontrollere størrelsen.

Nu er den komplet idiotsikker :)
Avatar billede clausga Nybegynder
05. november 2006 - 16:20 #10
Hehe ja så kan det ikke blive bedre :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester