[英]in javascript how can I detect if a browser will display or download a pdf?
說我有:
帶有 iframe 的網頁: <iframe src="" style="display:none;"></iframe>
指向 PDF 文檔的 URL: http://www.example.com
://www.example.com
一些會做iframe.src = pdfurl
javascript
將觸發此類 javascript 的按鈕
如果瀏覽器要顯示 PDF 內聯,按鈕會顯示“查看 pdf”,單擊時會使 iframe 可見
否則它會說“下載pdf”
我找到了一種檢測 pdf 是否已加載到 iframe 中的方法:在onload
觸發后讀取iframe.contentDocument.contentType
,但是
onload
不會觸發謝謝 :)
要告訴客戶端的瀏覽器將響應下載為文件,請在響應中將 Content-Disposition HTTP 標頭設置為“附件”。 這不能保證,但它是告訴瀏覽器如何處理內容的正確方法。
在現代瀏覽器中,JavaScript 的全局 Navigator 對象有一個 plugins 屬性,里面填充了一個 Plugins 數組,如果你能找到 Mimetype application/pdf 的 Plugin,你可以放心地假設瀏覽器會內聯顯示 pdf 文件,只要服務器當然,不會顯式發送 content-disposition: 附件標頭。
§ 8.9.1.6 PDF 查看支持
window.navigator.pdfViewerEnabled
如果用戶代理在導航到 PDF 文件時支持內聯查看,則返回
true
,否則返回false
。 在后一種情況下,PDF 文件將由外部軟件處理。
您可以向該資源發送HEAD 請求並檢查正在發回的Content-Type
和Content-Disposition
值。 根據這些信息,您可以確定瀏覽器是否會顯示或下載該資源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.