2009-06-06 3 views
4

У меня есть последующий сценарий:window.open() возвращает неопределенное значение или нуль на 2-й вызов

я нажимаю ссылку, которая: открывает всплывающее окно под названием «всплывающее окно», которое загружает PDF внутри него (в IE6).

без закрытия всплывающего окна, я нажмите на ссылку еще раз, который должен вновь открыть PDF-файл внутри всплывающего окна, но вместо Javascript ошибка брошена: член не найден

функция Javascript используется, чтобы открыть всплывающее окно является:

function openWindow(url, name, props) { 
    var windowRef = window.open(url, name, props); 
    if (!windowRef.opener) { 
    windowRef.opener = self; 
    } 
    windowRef.focus(); //error at this line, windowRef must be null 
    return windowRef; 
} 

вопрос: как я обойти эту проблему, не открывая новое всплывающее окно, каждый раз?

+0

Есть ли блокировщик всплывающих окон остановить его от открытия окна? Поставить предупреждение (windowRef); после window.open, чтобы узнать, не был ли объект неопределенным. – shahkalpesh

+0

В моем случае http://stackoverflow.com/a/43313683/3793078 –

ответ

7

это хак, который работает, что все на интернетах использует:

function openWindow(url, name, props) { 
    if(/*@[email protected]*/false){ //do this only in IE 
    var windowRef = window.open("", name, props); 
    windowRef.close(); 
    } 
    var windowRef = window.open(url, name, props); 
    if (!windowRef.opener) { 
    windowRef.opener = self; 
    } 
    windowRef.focus(); 
    return windowRef; 
} 
+0

Не работает должным образом. Он дает ошибку относительно 'openener' ... –

4

попробуйте использовать глобальный var windowRef вне функции openWindow(). Что-то вроде этого:

var WindowRef = null; 

function openWindow(url, name, props) { 
    if(WindowRef == null){ 
    WindowRef = window.open(url, name, props) 
    } 
    else{ 
    WindowRef.document.location = url 
    } 
    if (!WindowRef.opener) { 
    WindowRef.opener = self; 
    } 
    WindowRef.focus(); 
    return WindowRef; 
} 
+0

это не сработало, WindowRef.document.location = url part давало мне ошибку с отрицанием доступа. – mkoryak

+0

является адресом этого домена? –

Смежные вопросы