ShowModalDialog vraag

Pagina: 1
Acties:

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 27-05 13:28
Dag iedereen,

heb hier een beetje gezocht op GOT naar de oplossing en dankzij wat antwoorden ben ik al een stuk verder.

Ik maak gebruik van de ShowModalDialog functie om een window te openen. Nu blijft de POST van een form gelukkig al in hetzelfde window.

Dit heb ik gedaan door standaard een modal.asp te openen
en vervolgens als source van de frameset in modal.asp de daadwerkelijk
te openen pagina mee te geven.

Dit lukt allemaal prima. Post gaat ook prima (naar zichzelf toe).

Enige probleem. Nu heb ik een knop op dit formulier die de modal moet afsluiten (window.close werkt goed) maar ook het onderliggende window moet verversen.

Nu kon ik met newwindow gewoon altijd dit gebruiken:
HTML:
1
<input type=button class=knop value="Sluiten" onClick="opener.location.href = opener.location.href;window.close();">


echter nu krijg ik een foutmelding op "opener.location.href"

Nu heb ik al vrij veel geprobeerd, diverse parents aangeroepen maar het echte onderliggende scherm krijg ik niet aangesproken.

Heeft iemand een idee hoe ik dit op zou kunnen lossen?

bij voorbaat dank...

Everyday's an endless stream, of cigarettes and magazines...


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 27-05 16:24
Je kunt in het stukje javascript dat de dialog opent toch gewoon refreshen? De code stopt op de plaats waar je de dialog opent en gaat pas door als de dialog gesloten.

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 27-05 13:28
ja
dit kan inderdaad

blijkbaar wordt de code stopgezet (was ik niet van bewust)...

Het wordt echter lastiger als ik vanuit de modaldialog nog values mee wil geven aan de opener...

Everyday's an endless stream, of cigarettes and magazines...


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 27-05 16:24
Dat is ook niet zo'n probleem: je kent een waarde (array kan ook) toe aan window.returnValue.
In je code die je dialog opent zet je dan iets als: var value = window.showModalDialog(...);
Op die manier krijgt 'value' de waarde die je in je dialog toekent aan 'window.returnValue'.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Alles wat je noemt is nu juist waarom je een modalDialog gebruikt ipv een gewone popup :)

- Je code wordt onderbroken in afwachting van de reactie van de modalDialog
- De reactie van de modalDialog is simpelweg een variabele (of object).

Als je wilt dat de opener wordt ververst kun je bijvoorbeeld zoiets doen in de opener:

code:
1
2
if (window.showModalDialog('modal.html'))
    top.close();


En in de modal:

code:
1
2
3
4
// venster moet gesloten worden:
window.returnValue = true;
// anders:
window.returnValue = false;


Je kunt vanuit de modal ook Objecten meesturen dus. Erg handig, zo kun je bijvoorbeeld in de modal een hele array met dingen ophalen uit de database bijvoorbeeld en deze vervolgens doorsturen naar de opener.

window.returnValue = jouwArray;

[ Voor 54% gewijzigd door Bosmonster op 22-05-2003 12:45 ]


Verwijderd

hmm

Ik heb het zo gedaan :


Ik roep aan :

window.showModalDialog("blaat.htm",window,"")

----------
Om te sluiten :

var callerWindowObj = dialogArguments;
callerWindowObj.close();
this.close();

Probeer maar eens ...

  • party42
  • Registratie: Oktober 2000
  • Laatst online: 27-05 13:28
stoer

thanx mates! als ik vragen heb... kom ik wel trug
;)

Everyday's an endless stream, of cigarettes and magazines...

Pagina: 1