我有一个页面可以使用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;
网址评估为&#34; http://example.com:80/CaseLetter.aspx?Case=35251&UN=1&Letter=asdf&FileName=asdf&COID=ar000001&FilePath=&#34;
我得到的错误是&#34;无法获取未定义或空引用的属性&#39;位置。我在这里做错了什么?
答案 0 :(得分:0)
我会在变量中存储对模态的引用的路径,然后轮询以查看模式何时使用其closed
布尔属性来关闭(这在下面运行代码段时不起作用,因为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)
&#13;