Javascript 如何使用js自动下载PDF?

Javascript 如何使用js自动下载PDF?,javascript,jquery,pdf,plugins,google-chrome-extension,Javascript,Jquery,Pdf,Plugins,Google Chrome Extension,我的场景是自动下载PDF文件,然后用户填充它,当点击PDF中的提交按钮时,它连接到Javaservlet并保存在DB中 1 - User click on Button 2 - JavaScript code run and PDF file download automatically 3 - open file using JavaScript automatically 4 - user fills & press submit 5 - after submit servlet c

我的场景是自动下载PDF文件,然后用户填充它,当点击PDF中的提交按钮时,它连接到Javaservlet并保存在DB中

1 - User click on Button
2 - JavaScript code run and PDF file download automatically
3 - open file using JavaScript automatically
4 - user fills & press submit
5 - after submit servlet code run and save data in db
在我的申请中,只缺少第二点。请提供如何使用JavaScript与扩展交互以自动下载文件的代码。 我只想下载这个文件

  • 对于第二点,获取pdf文件到某个java变量的完整路径。e、 g
  • e、 g.您使用的是php,$filepath包含pdf文件路径

    所以您可以编写javascript来模拟下载对话框

    <script language="javascript">
        window.location.href = '<?php echo $filepath; ?>';
    </script
    
    
    window.location.href='';
    使用

    var link=document.createElement('a');
    link.href=url;
    link.download='file.pdf';
    link.dispatchEvent(新建MouseEvent('click'));
    
    也可以在新窗口中打开pdf链接,让浏览器处理其余内容:

    window.open(pdfUrl, '_blank');
    
    或:

    请试试这个

    (函数($){
    $(文档).ready(函数(){
    功能验证电子邮件(电子邮件){
    常数re=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\“+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.++]124;([a-zA Z-0-9]+-Z].-/];
    返回重新测试(电子邮件);
    }
    如果($('.submitclass').length){
    $('.submitclass')。单击(函数(){
    $email_id=$('.custom-email-field').val();
    if(validateEmail($email\u id)){
    var url=$(this.attr('pdf_url');
    var link=document.createElement('a');
    link.href=url;
    link.download=url.split(“/”).pop();
    link.dispatchEvent(新建MouseEvent('click'));
    }
    });
    }
    });
    }(jQuery))
    
    
    提交
    

    来源:

    document.location='url of pdf'
    请更具体一些。您只需要@JaromandaX上面所示的方法,还是更具体一点。我尝试了以下方法:
    window.location.href=file:///C:/Users/EHSAAN/Desktop/chrome%20extension/practice/abc.pdf';  
    但它会打开文件not download itwindow.location.href告诉文件的url not download filesorry,我的意思是说:应该是pdf文件的完全限定url,如下所示:window.location.href=''我给出了完整的路径。我不明白你说什么?请详细说明,完整路径意味着,若你们在浏览器地址栏中输入pdf的直接url,你们就可以访问它。正确的?所以完整的url必须存在于PHP的$filepath变量中。这很好。非常感谢。我们可以指定下载文件的路径吗??chrome不要求路径,而是使用javascript或HTML@EhsaanIsrar我们不能。浏览器通常使用下载文件的用户设置。非常感谢。您能告诉我如何在xhtml中自动下载吗?我正在开发一个基于java的框架liferay portlet,其中的视图是使用xhtml和primefaces设计的?有没有办法在xhtml中自动下载this@EhsaanIsrar你可以把答案标记为接受,不是吗?我不知道“在xhtml中自动”是什么意思。问题是关于javascript的,它应该可以正常工作。可以在正文末尾添加脚本标记etc@minj谢谢,这是一个完美的解决方案,但我有一个疑问,我们能否在文件下载时设置文件的下载时间。这将在新窗口中打开pdf文件,有什么方法可以直接下载吗?虽然新窗口会立即打开和关闭,但这也会产生不好的用户体验
    window.open(pdfUrl);
    
    /* Helper function */
    function download_file(fileURL, fileName) {
    // for non-IE
    if (!window.ActiveXObject) {
        var save = document.createElement('a');
        save.href = fileURL;
        save.target = '_blank';
        var filename = fileURL.substring(fileURL.lastIndexOf('/')+1);
        save.download = fileName || filename;
           if ( navigator.userAgent.toLowerCase().match(/(ipad|iphone|safari)/) && navigator.userAgent.search("Chrome") < 0) {
                document.location = save.href; 
    // window event not working here
            }else{
                var evt = new MouseEvent('click', {
                    'view': window,
                    'bubbles': true,
                    'cancelable': false
                });
                save.dispatchEvent(evt);
                (window.URL || window.webkitURL).revokeObjectURL(save.href);
            }   
    }
    
    // for IE < 11
    else if ( !! window.ActiveXObject && document.execCommand)     {
        var _window = window.open(fileURL, '_blank');
        _window.document.close();
        _window.document.execCommand('SaveAs', true, fileName || fileURL)
        _window.close();
    }
    }
    
    download_file(fileURL, fileName); //call function