我有一種情況,在客戶端系統中,active-x檢查被禁用,似乎由於安全原因他們無法啓用它。如何檢查Adobe Reader閱讀器安裝與否沒有在Javascript中使用Active-X檢查
在我的應用程序中,我必須測試客戶端系統是否安裝了Adobe Reader。是否有可能沒有檢查/創建新的活動X對象來驗證IE瀏覽器?
如果上面的東西是不可能的,是否有任何API /代碼可用於檢查通過JAVA?
我有一種情況,在客戶端系統中,active-x檢查被禁用,似乎由於安全原因他們無法啓用它。如何檢查Adobe Reader閱讀器安裝與否沒有在Javascript中使用Active-X檢查
在我的應用程序中,我必須測試客戶端系統是否安裝了Adobe Reader。是否有可能沒有檢查/創建新的活動X對象來驗證IE瀏覽器?
如果上面的東西是不可能的,是否有任何API /代碼可用於檢查通過JAVA?
在瀏覽器中運行的唯一解決方案是擁有一個Java applet,並具有正確的安全性檢查,檢查系統中是否安裝了PDF查看器。
如果主動-X是禁用試試這個(使用加載一個小的測試隱藏的PDF文檔):在頭
腳本:
var PDFOK = true;
function PDFLoadError() {
PDFOK = false;
}
在身體某處然後:
<object height=0 width=0 type="application/pdf" data="pdf/AdobeAcrobatReaderTestFile.pdf" id=Object1 onerror="PDFLoadError()">
<param name="src" value="AdobeAcrobatReaderTestFile.pdf">
</object>
而在html文檔的末尾(</body>
之前):
if (!PDFOK) {
// PDF reader is not installed...
}
如果已啓用ActiveX,請使用此代碼段從任何瀏覽器進行檢測。對於IE使用ActiveX進行檢查,對於使用navigator.plugins的其他瀏覽器。
<script type="text/javascript">
var acrobat=new Object();
acrobat.installed=false;
acrobat.version='0.0';
if (navigator.plugins && navigator.plugins.length){
for (var x = 0, l = navigator.plugins.length; x < l; ++x) {
if (navigator.plugins[x].description.indexOf('Adobe Acrobat') != -1 || navigator.plugins[x].description.indexOf('PDF') != -1) {
acrobat.version=(navigator.plugins[x].description.indexOf('PDF')!=-1)?'7+':parseFloat(navigator.plugins[x].description.split('Version ')[1]);
if (acrobat.version.toString().length == 1) acrobat.version+='.0';
acrobat.installed=true;
break;
}
}
}
else if (window.ActiveXObject) {
for (x=2; x<10; x++) {
try {
oAcro=eval("new ActiveXObject('PDF.PdfCtrl."+x+"');");
if (oAcro) {
acrobat.installed=true;
acrobat.version=x+'.0';
}
}
catch(e) {}
}
try {
oAcro4=new ActiveXObject('PDF.PdfCtrl.1');
if (oAcro4) {
acrobat.installed=true;
acrobat.version='4.0';
}
}
catch(e) {}
try {
oAcro7=new ActiveXObject('AcroPDF.PDF.1');
if (oAcro7) {
acrobat.installed=true;
acrobat.version='7+';
}
}
catch(e) {}
}
alert (acrobat.version);
</script>
-1無論用戶是否安裝Adobe Reader,無法將PDF文檔加載到「object」中都無關緊要。 – RoToRa 2011-04-14 08:39:15
@RoToRa:是的,你說得對,但我想提問者想知道用戶瀏覽器是否可以直接顯示PDF,然後做一些相關的操作。這只是試圖建議如何在客戶端進行檢查。也許我錯了。 – 2011-04-14 08:59:01
是的,我只是想驗證它在客戶端是否瀏覽器支持pdf或不..我會嘗試這個soln ..感謝 – techiepark 2011-04-21 10:21:48
簡單地說:不,這是不可能的。網站不知道用戶可能安裝或未安裝的軟件。這將是一個隱私的破壞。
你需要退後一步,解釋一下爲什麼你認爲你「必須」知道這一點,那麼可能有其他選擇,我們可以建議。
請記住,Adobe Reader不是那裏唯一的PDF閱讀軟件。
如果這不是通過瀏覽器小程序,因爲它是受限制的......也許你可以閱讀在Windows註冊表中的Adobe Reader鍵值...可能不是如此萬無一失反對不正確的應用程序安裝/卸載http:// stackoverflow .com/questions/62289/read-write-to-windows-registry-using-java – eee 2011-04-13 07:32:28
您是否真的需要了解Adobe Reader是否已安裝,或只是爲了確定瀏覽器是否可以直接顯示PDF? – 2011-04-14 09:16:28