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
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ordnung zu halten, mit showModalDialog in meiner Seite, ich hatte zu kommen mit meinem eigenen workaround für den Fehler. So, hier ist es...
In Google Chrome, nach einem postback showModalDialog immer gibt Sie undefined zurück. Jedoch ist das Fenster.opener-Eigenschaft in das modale Dialogfeld Punkte der Anrufer Fenster, auch nach postbacks. So, ich dachte darum, das Ergebnis des dialogs in die returnValue-Eigenschaft des Anrufer-Fenster. Und es funktioniert.
In der Anrufer-Fenster:
Im modalen dialog-Fenster:
InformationsquelleAutor der Antwort ConnorsFan
Ich hatte die gleiche Fehlermeldung, was ich gefunden habe in einigen Forums ist, dass, wenn Sie setzen Ihre Kontrollen in einem updatePanel-und ContentTemplate es funktioniert:
InformationsquelleAutor der Antwort Bachask8