2016-02-18 137 views
1

這段代碼我正在嘗試,但沒有任何錯誤,它沒有顯示任何東西給我。如何在不打開瀏覽器的情況下下載pdf文件

if (!window.ActiveXObject) { 
    var save = document.createElement('a'); 
    save.href = fileURL; 
    save.target = '_blank'; 
    save.download = fileName || 'unknown'; 

    var event = document.createEvent('Event'); 
    event.initEvent('click', true, true); 
    save.dispatchEvent(event); 
    (window.URL || window.webkitURL).revokeObjectURL(save.href); 
} 

// for IE 
else if (!! window.ActiveXObject && document.execCommand)  { 
    var _window = window.open(fileURL, '_blank'); 
    _window.document.close(); 
    _window.document.execCommand('SaveAs', true, fileName || fileURL) 
    _window.close(); 
} 

這不是爲我工作

+2

你是什麼意思「,而無需打開瀏覽器「?不是代碼在瀏覽器中運行嗎? – nnnnnn

+0

定義了「fileName」的位置?是否需要打開並下載一個空白的'html'文件作爲'pdf'? – guest271314

+0

這意味着文件不能在瀏覽器中打開,它應該直接下載。 –

回答

0

嘗試追加save元素使用.appendChild()document.body調用event.initEvent('click', true, true)之前,save.dispatchEvent(event)

var fileURL = "data:text/plain,abc", fileName = "file.txt"; 
 

 
if (!window.ActiveXObject) { 
 
    var save = document.createElement('a'); 
 
    save.href = fileURL; 
 
    save.target = '_blank'; 
 
    save.download = fileName || 'unknown'; 
 
    var event = document.createEvent('Event'); 
 
    // append `a` element : `save` to `document.body` here 
 
    document.body.appendChild(save); 
 
    event.initEvent('click', true, true); 
 
    save.dispatchEvent(event); 
 
    // (window.URL || window.webkitURL).revokeObjectURL(save.href); 
 
}

+0

未下載文件。 –

+0

可以描述你描述_「文件未下載」_? ,創建一個jsfiddle http://jsfiddle.net或plnkr http://plnkr.co來演示? – guest271314

+0

此代碼在谷歌克羅姆工作,但在Firefox中它是一個彈出保存文件。 –

相關問題