2017-02-22 15 views
0

У меня есть страница, которая открывает окно выбора всплывающих файлов, используя Javascript. Когда пользователь выбирает файл, родительское окно перенаправляется на страницу, загружающую документ. Я готов много сообщений с той же проблемой, но не нашел решения. У меня есть следующий код:Javascript - перенаправить родителя на новую страницу из всплывающего окна

Родитель

openChildWindow("FileMan2.aspx?UN=<%= Header1.UserNumber %>&FormMode=OPEN&RetObj=PRINTLETTER&PrintCase=" + OpenFlag, 550, 350); 

function openChildWindow(URL, width, height) { 
     if (window.showModalDialog) { 
      window.showModalDialog(URL, window.self, "dialogWidth:" + width + "px;dialogHeight:" + height + "px;center:yes;scroll:no;resizable:no;status:no;unadorned:no;edge:raised"); 
     } else { 
      window.open(URL, "docman", "width=" + width + ", height=" + height + ", screenX=0, screenY=0, status=no, scrollbars=no,toolbar=no,menubar=no,top=200,left=200,modal=yes"); 
     } 
    } 

Детского

var URL = window.location.protocol + "//" + window.location.host + "/CaseLetter.aspx?Case=<%= CaseNumber %>&UN=<%= Header1.UserNumber %>&Letter=" + file + "&FileName=" + file + "&COID=<%=GlobalVar.LawFirm %>&FilePath=<%= AddPath %>"; 
     window.opener.location.href = URL; 

URL вычисляется в "http://example.com:80/CaseLetter.aspx?Case=35251&UN=1&Letter=asdf&FileName=asdf&COID=ar000001&FilePath="

Ошибки я получаю «Невозможно получить свойство«местоположения 'неопределенной или нулевой ссылки. Что я делаю неправильно здесь?

+0

'window.opener' не работает с' window.showModalDialog' https://forums.asp.net/t/1123330.aspx?using+window+opener+with + ShowModalDialog – chiliNUT

ответ

0

Я бы пошел по пути сохранения ссылки на модальный в переменной, а затем на опрос, чтобы посмотреть, когда модаль закрыт, используя его логическое свойство , подобное этому (это не будет работать при запуске фрагмента ниже, потому что stackoverflow блокирует модальности, но вы можете проверьте, скопировав его в консоль инструментов chrome dev).

let modal = window.open("https://www.google.com?q=cats", "docman", "width=500,height=500,screenX=0, screenY=0,status=no,scrollbars=no,toolbar=no,menubar=no,top=200,left=200,modal=yes") 
 

 
function onClose() { 
 
    alert("Modal was closed") 
 
} 
 

 
let intervalID = setInterval(() => { 
 
    if(modal && modal.closed) { 
 
    clearTimeout(intervalID) 
 
    onClose() 
 
    } 
 
}, 200)