JS检测浏览器Adobe Reader插件

  Web应用中当我们希望向用户显示pdf文档时候,如果用户安装了Adobe Reader之类的pdf阅读器,就可以直接打开文档在浏览器中显示,

但是,当用户没有安装这类软件的时候,自然是打不开的,为了系统或者网站的易用性,最好在展示文档之前对客户端进行检测,如果已经安装

这类阅读器就直接显示,如果没有安装则跳转到Adobe Reader之类的阅读软件的下载页面或者直接给用户下载地址,提示用户进行下载安装。

我们可以通过JavaScript先进行检测,然后根据检测结果进行指定的跳转。如果是像火狐、谷歌这类浏览器很好处理,可是IE浏览器则总会遇到

各种问题,通过搜多资料和测试终于解决了各种版本以及不同浏览器的问题,下面就是相应的JavaScript代码。

<script type="text/javascript">

  //检测浏览器类型:IE、火狐、谷歌、Safari

  function getBrowserName(){
  var userAgent = navigator ? navigator.userAgent.toLowerCase() : "other";
  if(userAgent.indexOf("chrome") > -1) return "chrome";
  else if(userAgent.indexOf("safari") > -1) return "safari";
  else if(userAgent.indexOf("msie") > -1 || userAgent.indexOf("trident") > -1) return "ie";
  else if(userAgent.indexOf("firefox") > -1) return "firefox";
  return userAgent;
  }

  //针对IE返回ActiveXObject
  function getActiveXObject (name){
  try {
  return new ActiveXObject(name);
  } catch(e) {
  }
  }

  //针对除了IE之外浏览器
  function getNavigatorPlugin (name){
  for(key in navigator.plugins) {
  var plugin = navigator.plugins[key];
  if(plugin.name == name) return plugin;
  }
  }

  //获取Adobe Reader插件信息
  function getPDFPlugin(){
  if(getBrowserName() == ‘ie‘) {
  //
  // load the activeX control
  // AcroPDF.PDF is used by version 7 and later
  // PDF.PdfCtrl is used by version 6 and earlier
  return getActiveXObject(‘AcroPDF.PDF‘) || getActiveXObject(‘PDF.PdfCtrl‘);
  }
  else {
  return getNavigatorPlugin(‘Adobe Acrobat‘) || getNavigatorPlugin(‘Chrome PDF Viewer‘) || getNavigatorPlugin(‘WebKit built-in PDF‘);
  }
  }

      //判断插件是否安装
  function isAcrobatInstalled(){
  return !!getPDFPlugin();
  }
  function getAcrobatVersion(){
  try {
  var plugin = getPDFPlugin();
  if(getBrowserName() == ‘ie‘) {
  var versions = plugin.GetVersions().split(‘,‘);
  var latest = versions[0].split(‘=‘);
  return parseFloat(latest[1]);
  }
  if(plugin.version) return parseInt(plugin.version);
  return plugin.name;
  }
  catch(e) {
  return null;
  }
  }

  //插件安装了,则跳转到指定页面
  if(isAcrobatInstalled){
    window.location.href="";
  }else{

     //检测到未安装阅读器,则提示用户下载
  alert("你可能还没有安装pdf阅读器,为了方便你查看pdf文档,请下载安装!");
    window.location.href="http://ardownload.adobe.com/pub/adobe/reader/win/9.x/9.3/chs/AdbeRdr930_zh_CN.exe";
  }
</script>

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。