открытие всплывающего окна в IE - «Участник не найден» - PullRequest
3 голосов
/ 12 июня 2009

Это происходит в IE6, когда пользователь открывает всплывающее окно, открывающее файл PDF внутри. (эта часть работает).

Затем пользователь открывает другое всплывающее окно, и в этот момент я получаю эту ошибку.

Здесь есть хорошее описание и возможное решение

мой вопрос такой:

Есть ли лучшее решение? Открытие окна и его немедленное закрытие кажутся мне глупым решением.

Ответы [ 2 ]

4 голосов
/ 17 ноября 2011

Я думаю, что у меня есть лучшее решение, которое не включает в себя сначала закрытие окна. Проблема заключается в том, что IE не будет переопределять окно (PDF или другое), если вы попытаетесь открыть его снова с пустым URL-адресом (то есть, ''). Однако будет переопределять PDF с непустым URL. Это может быть файл, но о: blank работает даже лучше (именно так обычно работает пустой URL).

В зависимости от того, как написан ваш код, вы все равно можете захотеть попробовать / поймать, но это должно устранить необходимость:

windowHandle = window.open('about:blank',name,attributes);
windowHandle.document.location.href = url;
windowHandle.focus();

about: blank заставит PDF-файл выйти из дочернего окна и позволит вам делать то, что вам нужно. Возможно, было бы неплохо поместить настройку URL и focus () в обработчик windowHandle.onload (), поэтому при утилизации PDF не возникает проблем с синхронизацией. I.e.:

windowHandle.onload=function(){
    windowHandle.document.location.href = url;
    windowHandle.focus();
};
2 голосов
/ 18 декабря 2009

Я решил проблему с помощью блока try catch.

windowHandle = window.open('',name,attributes);
try {
    windowHandle.document.location.href = url;
} catch (exc) {
    windowHandle.close();
    windowHandle = window.open('',name,attributes);
    windowHandle.document.location.href = url + suffix;
}
windowHandle.focus();

Кажется, работает на меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...