我有一种情况,在客户端系统中,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