IE7 window.open, когда .focus возвращает ноль - PullRequest
1 голос
/ 13 октября 2010

Я пытаюсь сделать что-то подобное

win = null;
win = window.open('/url/to/link','tab');
win.focus();

но в IE7 он возвращает меня в строку win.focus (); ошибка в том, что win равен нулю.

Как мне это решить?

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 13 октября 2010

Вы можете попробовать добавить небольшую задержку, чтобы убедиться, что окно открыто

//win = null;  <--useless
win = window.open('/url/to/link','tab');
if(win)window.focus();
else{
    var timer = window.setTimeout( function(){ if(win)win.focus(); }, 100 );
}

В наши дни большинство людей избегают всплывающих окон и используют модальные слои.

2 голосов
/ 13 октября 2010

Цитата <Возвращаемое значение </p>

Возвращает ссылку на новый объект окна.Используйте эту ссылку для доступа к свойствам и методам в новом окне.

Internet Explorer 7 в Windows Vista: открытие нового окна из приложения (кроме процесса Internet Explorer) может привести к нулевому возвращаемому значению.Это ограничение возникает из-за того, что Internet Explorer по умолчанию работает в защищенном режиме.Один аспект защищенного режима не позволяет приложениям иметь привилегированный доступ к Internet Explorer, когда этот доступ выходит за границы процесса.Открытие нового окна с помощью этого метода создает новый процесс.Дополнительные сведения о защищенном режиме см. В разделе «Общие сведения и работа в защищенном режиме Internet Explorer».Это обычно происходит для приложений, в которых размещается элемент управления WebBrowser.> Window.Open документация метода

0 голосов
/ 16 июня 2011

Когда вы запускаете всплывающее окно, присвойте ему имя переменной:

myWin = window.open(etc)

//in the child window, call window.opener.myFocusFunction()
//in the parent window, use this...

function myFocusFunction(){
   myWin.focus();
   //myWin.blur();
   //uncomment as needed!
}

Поиграй, у меня все работает.

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