2024年4月14日发(作者:)
题目:JS检测浏览器Adobe Reader插件
1. --JS检测浏览器Adobe Reader插件
Web应用中当我们希望向用户显示pdf文档时候,如果用户安装
了Adobe Reader之类的pdf阅读器,就可以直接打开文档在浏览
器中显示,>>>
但是,当用户没有安装这类软件的时候,自然是打不开的,为了
系统或者网站的易用性,最好在展示文档之前对客户端进行检测,
如果已经安装>>>
这类阅读器就直接显示,如果没有安装则跳转到Adobe Reader之
类的阅读软件的下载页面或者直接给用户下载地址,提示用户进
行下载安装。>>>
我们可以通过JavaScript先进行检测,然后根据检测结果进行指
定的跳转。如果是像火狐、谷歌这类浏览器很好处理,可是IE浏
览器则总会遇到>>>
各种问题,通过搜多资料和测试终于解决了各种版本以及不同浏
览器的问题,下面就是相应的JavaScript代码。>>>
script type="text/javascript">>>
//检测浏览器类型:IE、火狐、谷歌、Safari>>>
function getBrowserName(){ >>>
var userAgent = navigator ? rCase() :
"other"; >>>
if(f("chrome") >>>
-1) return "chrome"; >>>
else if(f("safari") >>>
-1) return "safari"; >>>
else if(f("msie") >>>
-1 || f("trident") >>>
return "ie"; >>>
else if(f("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 s) { >>>
var plugin = s[key]; >>>
if( == name)>>>
return plugin; >>>
//获取Adobe Reader插件信息 >>>
function getPDFPlugin(){ >>>
if(getBrowserName() == >>>
) { >>>
// load the activeX control >>>
// is used by version 7 and later >>>
// l is used by version 6 and earlier >>>
return getActiveXObject(>>>
>>>
||getActiveXObject(>>>
l>>>
}else { >>>
return getNavigatorPlugin(>>>
Adobe Acrobat>>>
) || getNavigatorPlugin(>>>
Chrome >>>
PDF Viewer>>>
) || getNavigatorPlugin(>>>
WebKit built-in PDF>>>
); } >>>
//判断插件是否安装 >>>
function isAcrobatInstalled(){ >>>
return !!getPDFPlugin(); >>>
//获取Adobe Reader版本 >>>
function getAcrobatVersion(){ >>>
try { >>>
var plugin = getPDFPlugin(); >>>
if(getBrowserName() == >>>
) { >>>
var versions = sions().split(>>>
var latest = versions[0].split(>>>
return parseFloat(latest[1]); >>>
if(n)>>>
return parseInt(n); >>>
return ; >>>
} catch(e) { >>>
return null; >>>
//插件安装了,则跳转到指定页面 >>>
if(isAcrobatInstalled){ >>>
=""; >>>
}else{>>>
//检测到未安装阅读器,则提示用户下载 >>>
alert("你可能还没有安装pdf阅读器,为了方便你查看pdf文档,
请下载!"); >>>
="/pub/adobe/
reader/win/9.x/9.3/chs/AdbeRdr930_zh_"; }>>>
/script>>>
&& _screen && _screen();>>>


发布评论