Firefox在Firefox 19中引入了本機PDF查看器,該查看器運行良好。但是,在我的網站上,我想檢測PDF是否在Adobe Acrobat插件的本機PDF查看器中打開。檢測Firefox中的本地PDF查看器(在Firefox 19中引入)是否爲主PDF查看器
在此基礎上,我想告訴用戶選擇不同的查看器(Adobe Acrobat)。
Firefox在Firefox 19中引入了本機PDF查看器,該查看器運行良好。但是,在我的網站上,我想檢測PDF是否在Adobe Acrobat插件的本機PDF查看器中打開。檢測Firefox中的本地PDF查看器(在Firefox 19中引入)是否爲主PDF查看器
在此基礎上,我想告訴用戶選擇不同的查看器(Adobe Acrobat)。
如果我們做到這一點:
if(document.contentType="text\html" && window.location.href.endsWith(".pdf") > -1)
return true; // native PDF viewer is opened
else
return false;
上面的代碼是基於假設,對於PDF文件的URL將始終以.PDF結束。這有多可靠?
如何在PDF文件加載時運行此操作?作爲您在評論中提到的Firefox插件?如果你正在編寫一個Firefox插件,你應該在你的問題中提到。 Btw string.endsWith僅適用於最近的瀏覽器。 – 2013-03-06 13:42:41
當PDF文件在FF中加載時,內容類型爲text \ html,因爲它不是PDF,正如我在前面的評論中提到的那樣...並且我們可以編寫替代的endsWith自己,我只是爲了簡單而寫它... – hjindal 2013-03-07 05:54:18
只要您還檢查大寫.PDF我想它會很可靠。如果您嘗試使用沒有擴展名的PDF,Firefox是否甚至會檢測到它?無論如何,如上所示檢查PDFJS.version變量有什麼問題? – 2013-03-07 12:57:20
此問題回答了在另一篇文章:
How to detect if pdf.js is *default* reader in firefox
該解決方案被作者認爲是「脆」;這意味着它可能會被未來的Firefox或PDF.js更新所改變。這是唯一的解決辦法的工作,我發現:
從[這個線程(http://forums.mozillazine.org/viewtopic.php?f=23&t=2649203):「我認爲唯一的檢測是否啓用的方法是嵌入一個小的虛擬pdf,然後運行一些JS代碼來檢查PDFJS.version變量「 – 2013-03-06 06:57:23
,這對於網站是有意義的......如果有人正在編寫一個可以運行的插件所有的應用? – hjindal 2013-03-06 12:02:42
也許你可以使用navigator.plugins找出:https://developer.mozilla.org/en-US/docs/DOM/window.navigator.plugins – 2013-03-06 16:24:01