簡體   English   中英

JavaScript:如何下載文件,然后強制重新加載頁面?

[英]JavaScript: How to download a file, then force a page reload?

正如標題所提到的,我正在嘗試通過href URL給出的PHP腳本下載一個與關聯的mime類型一起提供的文件,然后重新加載同一頁面,但是無法弄明白,這是我到目前為止所擁有的:

<a id="viewAttachmentLink" href="/path/to/script.php?id=123">View Attachment</a>

<script type='text/javascript'>
    jquery('#viewAttachmentLink').bind('click', function() {
        if (myFunction()) {
            window.location.href = "jquery(this).attr('href')";
            setTimeout(location.reload(), 400);
        } else {
            return false;
        }
    });
</script>

使用此代碼,它將重新加載頁面,但似乎不會調用PHP腳本。

正如評論中所提到的,我能夠通過向鏈接添加target="_new"屬性來解決此問題。 因此,當單擊鏈接時,它會將請求發送到遠程php腳本到另一個窗口,該窗口將控制標頭並開始下載文件,原始窗口將根據需要重新加載。

我做了一個文件下載和狀態更新(通過標題),如下所示:

<a id="downloadData">Download data...</a>

<script type="text/javascript">
    $('#downloadData').on('click', function () {
        $.ajax({
            url: '/data',
            method: 'GET',
            success: function (data, textStatus, request) {
                var output = request.getResponseHeader('output');
                //refresh page here and use the output
                //console.log(output);
                var a = document.createElement('a');
                var url = '/data';
                a.href = url;
                a.click();
                //save file
            },
            error: function (e) {
                console.log(e);
            }
        });
    });
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM