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?
Een normale window.open of een layer zijn de beste opties.
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.
Hmm. Hoe werkt dan met een gewoon dialoog? Want als ik doe:
dan krijg ik gewoon een object terug.
code:
1
| iRetVal = window.open( 'component_list.php?itemType=' + sItemType, 'frmEditPageContent', options ); |
dan krijg ik gewoon een object terug.
Vanuit de popup geef je dan de waarde terug:
code:
1
| opener.iRetVal = "bla"; |
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
Vervolgens gebruik in onderstaand code in me "hoofd"-pagina waar ik de waarde wil opvangen:
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
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
Waarom roep je geen alert aan vanuit je popupalienfruit 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
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.
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.
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 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?
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.
Je kunt vlak voor de window.close() een functie uit je hoofdscherm aanroepen: opener.popupisgeclosed()
Top werkt! Ik ga die deadline nog halen van vandaag
Pagina: 1