按下CTRL时下载文本文件

时间:2017-02-24 14:04:10

标签: javascript jquery html

我试图下载文本文件,当按下CTRL(17)时,它工作正常,但现在我的代码在按下CTRL时工作,然后添加属性以下载'按钮,然后开始下载。

有任何解决方案可做:按下CTRL后开始下载,无需按下'下载'按钮?

  else if (e.originalEvent.keyCode === 17)
        {
            var file_name = e.target.innerText;

            var path = "files/" + file_name;

            var rawFile = new XMLHttpRequest();

            rawFile.open("GET", path, false);

            rawFile.onreadystatechange = function ()
            {
                var allText = rawFile.responseText;

                var fileName = file_name;
                var myFile = new Blob([allText], {type: 'text/plain'});

                window.URL = window.URL || window.webkitURL;
                document.getElementById('download').setAttribute('href', window.URL.createObjectURL(myFile));
                document.getElementById('download').setAttribute('download', fileName);
            };
            rawFile.send(null);
        }

2 个答案:

答案 0 :(得分:0)

        var file_name = e.target.innerText;

        var path = "files/" + file_name;

        var rawFile = new XMLHttpRequest();

        rawFile.open("GET", path, false);

        rawFile.onreadystatechange = function ()
        {
            var allText = rawFile.responseText;

            var fileName = file_name;
            var myFile = new Blob([allText], {type: 'text/plain'});

            window.URL = window.URL || window.webkitURL;
            document.getElementById('download').setAttribute('href', window.URL.createObjectURL(myFile));
            document.getElementById('download').setAttribute('download', fileName);

            $("#download").click();//click here

        };
        rawFile.send(null);

您可以通过编程方式单击该项目。您可以在设置属性后执行此操作。

答案 1 :(得分:0)

如果有人关心,这就是答案:

document.getElementById("download").click();

谢谢顺便说一下:)