Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
目标属性的Javascript帮助_Javascript - Fatal编程技术网

目标属性的Javascript帮助

目标属性的Javascript帮助,javascript,Javascript,我有一个更小的新窗口,而不是从下载pdf打开一个新标签。 我只需要来自downlado.jsp的回调变量,即当它在父窗口上完成工作时,关闭downlado.jsp。从这里我调用了send me函数 JavaScript: function sendme() { winname = "myNewWin"; window.open("","myNewWin","width=500,height=300,toolbar=0"); lsurl = "downlado.jsp";

我有一个更小的新窗口,而不是从下载pdf打开一个新标签。 我只需要来自downlado.jsp的回调变量,即当它在父窗口上完成工作时,关闭downlado.jsp。从这里我调用了send me函数

JavaScript:

function sendme()
{
    winname = "myNewWin";
    window.open("","myNewWin","width=500,height=300,toolbar=0");
    lsurl  = "downlado.jsp";
    window.document.Form.action = lsurl;
    window.document.Form.target = winName;
    window.document.Form.submit();
    window.setTimeout("window.close",5000);
 }
比如说

function callback()
{
    close download jsp;
}

不幸的是,这在纯Javascript中是不可能的。但是,您可以使用以下解决方法:

  • 在新窗口中开始下载
  • 定期向服务器发出AJAX调用,检查下载是否完成
  • 如果是,请关闭窗口
好的,关于AJAX部分,您需要知道两件事:

  • 如何进行AJAX调用——这非常简单,web上有很多示例。如果您不熟悉AJAX,我建议您使用
  • 您需要来自HTTP服务器的信息来告诉您文件何时完成下载。假设您使用Apache,那么about conditional logging可能会让您知道在何处查找(尽管您可能不想删除文件,而是想在某个地方创建一个新文件,以便进行AJAX调用,并确定文件是否已完成下载)

  • 我不太明白。下载完成后是否关闭新窗口?是。你的理解是正确的。但若在下载完成之前,若新窗口关闭,那个么pdf的保存对话框也不会出现。我想要新窗口中的变量,它告诉我下载完成,然后我将在新窗口附近调用。我知道AJAX调用,我可以做到,但请您详细说明一些我易于理解的分步代码……JU只需两次调用,一次调用AJAX,一次调用两个genrate pdf。下面是一个更简单解决方案的想法。。。。下载开始后,为什么不直接关闭窗口?为什么下载时窗口需要保持打开状态?如果您立即关闭它,文件仍然可以正常下载。首先,我调用方法从新窗口生成pdf。在该jsp中,我使用了response.adheader(“内容处置”,“附件:filename=“+filename”);所以,若窗口关闭,我并没有得到保存对话框。第二,我不想让用户导航任何其他地方之前,他的下载完成,因为我已经bolceed用户界面。从回调变量中,我将刷新屏幕并解锁UI。