Ho creato un piccolo popup di calendario in Javascript. Molto semplice, usando il controllo Calendar da ASP.NET. Chiamo la finestra popup con showModalDialog. Nella finestra modale, cambiando il corrente mese di calendario provoca problemi a causa del postback, e ho trovato in molti luoghi che la soluzione è quella di mettere:javascript - showModalDialog non restituisce valore in Chrome
<base target="_self"/>
nella parte di testa del file aspx. Tutto funziona alla grande ... tranne per una cosa, e solo in Google Chrome. Per recuperare la data selezionata, ho impostato il valore di ritorno del popup sulla data selezionata nel calendario. In IE e Firefox, funziona sempre. In Chrome, tuttavia, funziona solo se non cambio il mese corrente nel calendario. Non appena lo cambio, il valore restituito non viene restituito al chiamante di showModalDialog. È come se la finestra modale non fosse più quella originale; il valore di ritorno non è definito.
Qualcuno ha provato questo comportamento e ha un suggerimento per farlo funzionare? Ho provato a utilizzare dialogArguments per tenere traccia della finestra del chiamante, ma viene passato solo alla prima finestra modale (viene perso dopo aver cambiato il mese corrente).
Il codice nella procedura chiamante:
var d = window.showModalDialog(...)
Il codice nella finestra modale:
window.returnValue = selectedDate;
self.close();
Come ho detto a Teemu, selectedDate e window.returnValue sono entrambi sempre corretti. Tuttavia, nel caso di Google Chrome (dopo un mese di modifica nel calendario), returnValue non viene passato indietro da showModalDialog e d non è definito.
Suoni più come la procedura per modificare il valore restituito nella finestra di dialogo modale fallisce in Chrome. – Teemu
In tal caso, perché funziona quando resto nel mese corrente? – ConnorsFan
Difficile dire senza vedere il codice ... – Teemu