javascript - showModalDialog не возвращает значение в Chrome

Я сделал маленькое всплывающее окно календаря на Javascript. Очень просто, используя элемент управления Calendar из ASP.NET. Я вызываю всплывающее окно с помощью showModalDialog. В модальном окне изменение текущего месяца календаря вызывает проблемы из-за постбэка, и я нашел в нескольких местах, что решение заключается в том, чтобы поместить:

<base target="_self"/>

в заголовочную часть файла aspx. Все отлично работает... кроме одного, и только в Google Chrome. Чтобы вернуть выбранную дату, я устанавливаю returnValue всплывающего окна на дату, выбранную в календаре. В IE и Firefox всегда работает. Однако в Chrome это работает, только если я не меняю текущий месяц в календаре. Как только я его изменяю, возвращаемое значение не передается обратно вызывающей стороне showModalDialog. Как будто модальное окно больше не является исходным; возвращаемое значение не определено.

Кто-нибудь сталкивался с таким поведением и может предложить, как заставить его работать? Я попытался использовать dialogArguments, чтобы отслеживать окно вызывающего абонента, но оно передается только первому модальному окну (оно теряется после изменения текущего месяца).

Код в вызывающей процедуре:

var d = window.showModalDialog(...)

Код в модальном окне:

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

Как я сказал Теему, selectedDate и window.returnValue всегда верны.Однако в случае с Google Chrome (после смены месяца в календаре) returnValue не передается обратно с помощью showModalDialog, а d не определено.

18
задан gws 1 October 2013 в 14:08
поделиться