Avatar billede monkeysee Nybegynder
12. januar 2005 - 15:40 Der er 3 kommentarer og
1 løsning

Modal dialog i Firefox

Jeg vil gerne simulere modaldialogs i firefox, og bruger denne teknik:
http://www.eggheadcafe.com/articles/javascript_modal_dialog.asp

Hvis jeg følger artiklen i denne side så virker virker alting fint - bortset fra at den javascript funktion jeg kalder fra vinduet har window.opener som udgangspunkt (scope) og ikke mit hovedvindue (this.window).

Det betyder at alle referencer til andre objekter skal have en "if(window.opener)" tilføjet, hvilket jeg egentlig gerne vil være foruden.

Er der en nem metode som gør at jeg ikke skal ændre i resten af koden ?

(og for at forstå mit spørgsmål er det nok bedst lige at tjekke Robbe Morris' eksempel først...:-)

mvh Danoise
Avatar billede olebole Juniormester
12. januar 2005 - 16:01 #1
<ole>

Det er nu engang den måde, et JS-popup-vindue refererer til window-objektet, hvorfra det blev åbnet - hvorfor dog begynde at lave det om?

/mvh
</bole>
Avatar billede monkeysee Nybegynder
13. januar 2005 - 00:08 #2
Ja det har du sådan set ret i, men hvis jeg kunne undgå at lave alle de tjeck...

En løsning jeg kunne forestille mig virke, var nemlig at oprette en variabel som peger på "window.opener" hvis koden bliver eksekveret fra popup vinduet, og "this.window" hvis det ikke er tilfældet. Det kunne f.eks se sådan her ud

alt efter situationen definerer jeg variablen således:

var oWin = [window.opener || this.opener ]

og så tilføjer jeg den foran alle objekt referencer:

oWin.document.getElementById("element")
oWin.location.href="url"

o.s.v...

Jeg tjekker lige om det virker!
Avatar billede monkeysee Nybegynder
13. januar 2005 - 00:11 #3
Øh der sneg sig lige en skrivefelj ind...

var oWin = [window.opener || this.opener ]

jeg mente at popup vinduet siger "var oWin = window.opener"
hvor oWin normalt er "var oWin = this.window"
Avatar billede monkeysee Nybegynder
13. januar 2005 - 11:34 #4
OK det virker nu...jeg satte blot et tjek op, så MSIE laver et "normalt" modalt vindue, medens firefox benytter Robbe Morris' kode. Nu virker det !
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