Это не window.opener.document
, а window.opener
Попробуйте проверить, действует ли открыватель еще до этого.
Обычно я делаю что-то вроде этого:
if ( window.opener != null)
window.opener.callReload();
window.close();
Немного
Я отказался от всплывающих окон, подобных этим, потому что ими сложно управлять.
Я склонен использовать jQuery UI Dialog , чтобы я мог управлять всем на одной странице.
ОБНОВЛЕНИЕ
Если вы используете window.showModalDialog();
, все еще проще.
Вот пример:
<script type="text/javascript">
function OpenDialog(userPopupUrl)
{
alert("starting!");
var vReturnValue = window.showModalDialog(userPopupUrl,"dialogWidth:450px;dialogHeight:100px;center:yes;resizable:no;status:no;help:no;");
alert("I am here!");
// You can refresh whatever you want here!!!!
}
</script>
Посколькувы создаете диалог, процесс клиент-сценарий останавливается, пока вы не закроете всплывающее окно.В этот момент ваш javascript возвращает управление и может запускать некоторые другие действия.PS: Вы можете использовать - как я - возвращаемое значение в качестве состояния здесь .