javascript - showModalDialog nie zwraca wartości w Chrome

Zrobiłem mały kalendarz w Javascript. Bardzo proste, używając formantu Calendar z ASP.NET. Wywołuję wyskakujące okno za pomocą showModalDialog. W oknie modalnym zmiana bieżącego miesiąca kalendarza powoduje problemy z powodu odsyłacza i znalazłem w kilku miejscach, że rozwiązaniem jest umieszczenie:

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

w części głównej pliku aspx. Wszystko działa świetnie ... z wyjątkiem jednej rzeczy i tylko w Google Chrome. Aby przywrócić wybraną datę, ustawiłem wartość returnValue wyskakującego okienka na datę wybraną w kalendarzu. W IE i Firefox zawsze działa. Jednak w Chrome działa tylko wtedy, gdy nie zmieniam bieżącego miesiąca w kalendarzu. Jak tylko ją zmienię, wartość zwracana nie zostanie przekazana z powrotem do wywołującego showModalDialog. To tak, jakby okno modalne nie było już oryginalnym; wartość zwracana jest niezdefiniowana.

Czy ktoś doświadczył tego zachowania i ma sugestię, aby to działało? Próbowałem użyć dialogArguments, aby śledzić okno wywołującego, ale zostanie ono przekazane tylko do pierwszego okna modalnego (zostanie utracone po zmianie bieżącego miesiąca).

Kod w procedurze wywoływania:

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

Kod w oknie modalnym:

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

Jak powiedziałem Teemu, selectedDate i window.returnValue są zawsze poprawne. Jednak w przypadku Google Chrome (po miesięcznej zmianie w kalendarzu) returnValue nie jest przekazywany przez showModalDialog, a d jest niezdefiniowane.

questionAnswers(2)

yourAnswerToTheQuestion