Avatar billede kongknabe Nybegynder
27. marts 2009 - 00:21 Der er 11 kommentarer og
1 løsning

Sende location samt javascript fra et vindue til et andet?

Hejsa.

Forsøger at sende noget javascript fra et vindue til et andet, og har indtilvidere løst problemet på følgende måde:

<a href="#" target="window_two" onclick="window.open('java script: myFunction('myVar');', 'window_two'); return false">Send javascript to window_two</a>

- Det virker lige som det skal, men selvfølgelig kun hvis "window_two" allerede er åbent.

Hvis "window_two" ikke er åbent vil jeg gerne åbne det med en specofok URL, samt det javascript jeg sender med ovenfor, men kan ikke lige gennemskue hvordan jeg gør det?
Avatar billede olebole Juniormester
27. marts 2009 - 10:13 #1
<ole>

Jeg forstår ikke præcist, hvad det er, du vil opnå  =)

/mvh
</bole>
Avatar billede lolman Nybegynder
27. marts 2009 - 11:20 #2
nej det gør jeg heller ikke lige... men jeg har et skud ;)
Du har et vindue du vil sende noget js til, og hvis vinduet ikke er åbent skal vinduet åbnes og så skal der sendes js til det. ?

i så fald kan du lave noget ala.

function iswindow() {
  if (popupWin != null) {
    if (!popupWin.closed) {
      //alert('Vinduet er åbent');
    } else {
      //alert('Vinduet er lukket');
      openWindow("url","window_two");
    }
  } else {
      //alert('Vinduet er ikke initialiseret');
      openWindow("url","window_two");
    }
  }
  openWindow("function","window_two");
}
function openWindow(url,nam) {
  popupWin = window.open(url, name)
}

og så bar start med iswindow()
Avatar billede kongknabe Nybegynder
27. marts 2009 - 15:43 #3
Kan godt forstå hvis i ikke helt kan gennemskue hvad jeg vil.. det var vist også lidt dårligt forklaret. Skal lige prøve at forklare præcis hvad jeg gerne vil opnå :)

1) Du opretter en profil på en hjemmeside og får af vide at du nu skal aktivere din emailadresse igennem et link der er mailet til dig for at færdiggøre din oprettelse.

2) Du hopper ind i dit mailprogram og trykker på linket. Linket åbner en pop-up der sætter fokus til det vindue du oprindeligt oprettede din profil i, sender noget javascript med hvorefter det lukker sig selv. (Er det oprindelige vindue blevet lukket i mellem tiden skal det åbnes igen).


Håber denne forklaring giver mening :) - Vil lige prøve at kigge på lolmans script og se om det kan gøre tricket :)
Avatar billede olebole Juniormester
27. marts 2009 - 23:51 #4
Det kan du ikke. Et vindue (du kan ikke åbne en popup i en mail-klient), der åbnes fra en mail-klient kan aldrig i de tilgængelige websprog/-teknologier kende noget til andre vinduer - eller omvendt ... og det skal man vist være mere end tilfreds med.

Hvad får dig forøvrigt til at tro, brugeren ikke har lukket den oprindelige browserinstans, når han klikker på linket i mailen?
Avatar billede kongknabe Nybegynder
28. marts 2009 - 00:13 #5
Nej, har også erfaret at jeg ikke kan pege på et bestemt vindue navn i et link fra en email klient - derfor håbede jeg på at jeg i stedet måske kunne åbne et vindue, der selve kunne viderestille til det ønskede vindue, og så lukke sig selv derefter.. Men det kan man måske heller ikke?

Og du har helt ret i at jeg slet ikke kan vide hvorvidt folk har lukket det oprindelige vindue i mellemtiden, og der er netop også derfor at jeg kun ønsker at viderestille  til det oprindelige vindue, hvis det findes. Gør det ikke det skal det vindue der åbnes fra mailen, selv loade siden i stedet for at viderestille.

Kan godt være det slet ikke er besværet værd - syntes bare det kunne være lækkert hvis man kunne lave oprettelses proceduren lidt mere strømlinet og dette var en evt. måde at gøre det på, som jeg desværre bare ikke helt kan få til at virke :)
Avatar billede olebole Juniormester
28. marts 2009 - 00:20 #6
Uanset om brugeren har lukket det oprindelige vindue eller ej, kan de to vinduer ikke finde hinanden og/eller interagere
Avatar billede kongknabe Nybegynder
28. marts 2009 - 14:21 #7
Ok, så må jeg finde på noget andet :) Men tak for hjælpen, smid et svar for point :)
Avatar billede olebole Juniormester
30. marts 2009 - 01:34 #8
Jeg har desværre ikke nogen gode bud  =)
Avatar billede olebole Juniormester
30. marts 2009 - 01:51 #9
Tak for points  =)
Avatar billede kongknabe Nybegynder
30. marts 2009 - 01:58 #10
Så lidt og tak for hjælpen.. Har måtte opgive at få det til at virke med at vende tilbage til det oprindelige vindue via et aktiverings link i en mail, og har i stedet nu lavet det så det nye vindue der åbner op har samme URL som det man kom fra, så man ender ud samme sted som man kom fra, omend i et nyt vindue.

(Selve brugeroprettelsen foregår i et AJAX loadet overlay, så siden "nede under", er tilgængelige igen når man har oprettet en bruger :))
Avatar billede olebole Juniormester
30. marts 2009 - 02:28 #11
Du kunne jo lade siden, der sender hans tilmelding stå og spørge serveren med Ajax, om brugeren har bekræftet. Når det sker, redirect'er du det vindue til en side, der siger 'Tak for bekræftelsen'.

På et tidspunkt får han lukket vinduet, som poppede fra mail-programmet - og som han bekræftede i - og finder tilbage til 'det gamle' vindue. Her hænger siden ikke det sted, hvor han sendte sin tilmelding - men på en af sitets sider, som har lært, han har bekræftet sin tilmelding.

Bedste bud lige nu  =)
Avatar billede olebole Juniormester
30. marts 2009 - 02:30 #12
- og du behøver selvfølgelig ikke at redirect'e til en anden side. Du kan jo bare vise et overlay med et andet indhold  ;o)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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