javascript - showModalDialog gibt keinen Wert in Chrome zurück

Habe ich einen kleinen Kalender-popup in Javascript. Sehr einfach, mit der Kalender-Kontrolle aus ASP.NET. Ich rufen Sie das popup-Fenster mit showModalDialog. Im modal-Fenster, ändern Sie den aktuellen Monat im Kalender verursacht Probleme, weil der postback, und ich an mehreren stellen gefunden, dass die Lösung ist:

<base target="_self"/>

in den head-Teil der aspx-Datei. Alles Super funktioniert... bis auf eine Sache, und nur in Google Chrome. Um das ausgewählte Datum, habe ich den returnValue des popup, um das ausgewählte Datum im Kalender. Im IE und Firefox, es funktioniert immer. In Chrome, jedoch, es funktioniert nur, wenn ich nicht ändern Sie den aktuellen Monat im Kalender. Sobald ich es ändern, ist der Rückgabewert ist nicht der Aufrufer der Methode showModalDialog. Es ist, als wenn das modale Fenster ist nicht das original mehr; der Rückgabewert ist undefiniert.

Hat jemand Erfahrung, Verhalten und einen Vorschlag machen, damit es funktioniert? Ich habe versucht, mit dialogArguments zu halten Spur von die Anrufer Fenster, aber es übergeben bekommt nur der erste modales Fenster an (ist es verloren gegangen, nach ändern des aktuellen Monats).

Den code in der aufrufenden Prozedur:

var d = window.showModalDialog(...)

Den code in das modale Fenster:

window.returnValue = selectedDate; 
self.close();

Wie gesagt, Teemu, selectedDate und Fenster.rueckgabewert sind die beiden immer richtig. Doch im Fall von Google Chrome (nach einem Monat ändern in den Kalender), returnValue ist nicht bestanden, zurück von showModalDialog und d ist nicht definiert.

InformationsquelleAutor der Frage ConnorsFan | 2012-04-18

Schreibe einen Kommentar