javascript - showModalDialog gibt in Chrome keinen Wert zurück

Ich habe ein kleines Kalender-Popup in Javascript erstellt. Ganz einfach mit dem Kalender-Steuerelement von ASP.NET. Ich rufe das Popup-Fenster mit showModalDialog auf. Im modalen Fenster verursacht das Ändern des aktuellen Kalendermonats aufgrund des Postbacks Probleme, und ich habe an mehreren Stellen die Lösung gefunden:

<code><base target="_self"/>
</code>

im Kopfteil der ASPX-Datei. Alles funktioniert super ... bis auf eine Sache und nur in Google Chrome. Um das ausgewählte Datum wiederherzustellen, setze ich den Rückgabewert des Popups auf das im Kalender ausgewählte Datum. In IE und Firefox funktioniert es immer. In Chrome funktioniert dies jedoch nur, wenn ich den aktuellen Monat im Kalender nicht ändere. Sobald ich es ändere, wird der Rückgabewert nicht an den Aufrufer von showModalDialog zurückgegeben. Es ist, als ob das modale Fenster nicht mehr das ursprüngliche ist. Der Rückgabewert ist undefiniert.

Hat jemand dieses Verhalten erlebt und einen Vorschlag gemacht, damit es funktioniert? Ich habe versucht, dialogArguments zu verwenden, um das Anruferfenster zu verfolgen, aber es wird nur an das erste modale Fenster übergeben (es geht verloren, nachdem der aktuelle Monat geändert wurde).

Der Code in der aufrufenden Prozedur:

<code>var d = window.showModalDialog(...)
</code>

Der Code im modalen Fenster:

<code>window.returnValue = selectedDate; 
self.close();
</code>

Wie ich Teemu sagte, sind selectedDate und window.returnValue immer korrekt. Bei Google Chrome (nach einer monatlichen Änderung im Kalender) wird returnValue jedoch nicht von showModalDialog zurückgegeben und d ist undefiniert.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage