Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在没有在Javascript中检查Active-X的情况下检查是否安装了adobe reader_Java_Javascript - Fatal编程技术网

如何在没有在Javascript中检查Active-X的情况下检查是否安装了adobe reader

如何在没有在Javascript中检查Active-X的情况下检查是否安装了adobe reader,java,javascript,Java,Javascript,我遇到的情况是,客户端系统中的active-x检查似乎被禁用,并且由于安全原因,他们无法启用它 在我的应用程序中,我必须测试客户端系统是否安装了adobe reader。是否可以不检查/创建新的active-x对象来验证IE 如果无法执行上述操作,是否有任何api/代码可通过JAVA进行检查?在浏览器中运行的唯一解决方案是使用具有正确安全性证书的JAVA小程序,检查系统上PDF查看器的安装情况。如果禁用Active-X,请尝试使用此选项加载一个小的测试隐藏PDF文档: 标题中的脚本: var P

我遇到的情况是,客户端系统中的active-x检查似乎被禁用,并且由于安全原因,他们无法启用它

在我的应用程序中,我必须测试客户端系统是否安装了adobe reader。是否可以不检查/创建新的active-x对象来验证IE


如果无法执行上述操作,是否有任何api/代码可通过JAVA进行检查?

在浏览器中运行的唯一解决方案是使用具有正确安全性证书的JAVA小程序,检查系统上PDF查看器的安装情况。

如果禁用Active-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>
如果启用了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>

简单地说:不,这是不可能的。网站不必知道用户可能安装了或没有安装什么软件。这将是对隐私的侵犯

你需要退后一步,解释一下,为什么你认为你必须知道这一点,然后可能会有其他选择,我们可以建议


请记住,Adobe Reader并不是唯一的PDF Reader软件。

如果这不是通过浏览器小程序实现的,因为它受到限制…也许您可以在Windows注册表中读取Adobe Reader键值。。。对于不正确的应用程序安装/取消安装,可能无法做到万无一失。您真的需要确定是否安装了Adobe Reader,还是仅仅确定浏览器是否可以直接显示PDF?-1在对象中加载PDF文档失败与用户是否安装了Adobe Reader完全无关。@RoToRa:是,你们是对的,但我认为asker想知道用户浏览器是否可以直接显示PDF,然后做一些与之相关的后续操作。这只是试图建议如何在客户端检查它。也许我错了。是的,我只是想在客户端验证浏览器是否支持pdf。。我将尝试一下这个解决方案。。thanks@RoToRa:我想我根据评论为techiepark提供了可行的解决方案。所以,我不明白为什么我有-1,任何你有0:你能改变你的评级吗?谢谢
<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>