[Javascript] Waarde terug krijgen in een popupvenster

Pagina: 1
Acties:

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

Topicstarter
Ik ben momenteel bezig met het maken van een website waarbij ik graag de gebruiker uit een lijstje wil laten kiezen om vervolgens de gekozen waarde terug te krijgen in JavaScript. Als je gebruik maakt van IE kun je hiervoor showModalDialog gebruiken, alleen nu wil ik de website ook graag aan de praat hebben voor Firefox e.d. maar die ondersteunt geen showModalDialog. Iemand enig idee hoe je dit kan oplossen? Moet ik echt een layer gebruiken?

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Een normale window.open of een layer zijn de beste opties.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Dat kan toch via het opener object :?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

Topicstarter
Hmm. Hoe werkt dan met een gewoon dialoog? Want als ik doe:

code:
1
iRetVal = window.open( 'component_list.php?itemType=' + sItemType, 'frmEditPageContent', options );


dan krijg ik gewoon een object terug.

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Vanuit de popup geef je dan de waarde terug:

code:
1
opener.iRetVal = "bla";

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

Topicstarter
Hmm, volgens mij werkt het voor de helft nu. Enige probleem wat ik heb nu als ik de volgende code heb voor in het dialoog.

Code in dialoog.html
Java:
1
2
3
4
5
6
7
8
        function selectItem( item_value ) {
            //alert( 'selectItem' );
            if ( window.opener && !window.opener.closed ) {
                window.opener.oResult = item_value;
                //alert( 'Stored value: ' + window.opener.oResult  );
                window.close();
            }
        }


Vervolgens gebruik in onderstaand code in me "hoofd"-pagina waar ik de waarde wil opvangen:

Java:
1
2
3
4
5
        function select( ) {
                //
                sList = window.open( "dialoog.html", "list", "width=350,height=300" );
                alert( 'value=' + sList.opener.oResult );
        }


Dan krijg ik me alert box meteen als de het venster wordt geopend ipv. wanneer het opgesloten is, kun je dat op een manier ook nog opvangen? Dan kan ik kijken of ie de waarde ook echt terug krijgt :)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

alienfruit schreef op 29 september 2004 @ 16:06:
Dan krijg ik me alert box meteen als de het venster wordt geopend ipv. wanneer het opgesloten is, kun je dat op een manier ook nog opvangen? Dan kan ik kijken of ie de waarde ook echt terug krijgt :)
Waarom roep je geen alert aan vanuit je popup :? ;)

code:
1
opener.alert('alienfruit');



edit:

Of een input-field updaten in je opener.

[ Voor 9% gewijzigd door BtM909 op 29-09-2004 16:11 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 22-05 21:28

MBV

Voor mozilla heb je ook zoiets als showmodal. Dan blijft je popup boven het orginele scherm. Weet zo gauw niet meer waar dat stond, maar is vrij simpel te vinden.

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

Topicstarter
Omdat ik wil weten of ik de waarde ook echt heb in de functie waaruit ik heb aangeroepen heb. Maar als je window.close() dan raakt hij zulke informatie niet kwijt?

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

alienfruit schreef op 29 september 2004 @ 16:12:
Omdat ik wil weten of ik de waarde ook echt heb in de functie waaruit ik heb aangeroepen heb. Maar als je window.close() dan raakt hij zulke informatie niet kwijt?
Nee, want de info is dan al doorgestuurd naar je hoofdscherm.

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

Topicstarter
Ooh. Andere vraag dan hoe kan ik detecteren wanneer een popup venster wordt gesloten? Zodat ik verder kan gaan in me functie? Ik wil me acties pas uitvoeren als de popup venster weer gesloten is. Ik sluit het namelijk via window.close() als de gebruiker een bepaalde javascript methode heeft aangeroepen.

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Je kunt vlak voor de window.close() een functie uit je hoofdscherm aanroepen: opener.popupisgeclosed() :)

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-05 23:32

alienfruit

the alien you never expected

Topicstarter
Top werkt! Ik ga die deadline nog halen van vandaag ;)
Pagina: 1