gpt4 book ai didi

javascript - 使用 JavaScript 在 ie11 中检测 Adob​​e Reader

转载 作者:行者123 更新时间:2023-11-29 18:17:50 25 4
gpt4 key购买 nike

我正在尝试检测 IE11 的 Adob​​e Reader 插件,但由于某种原因它总是返回 null。我相信这是因为 IE11 没有使用与旧版本 Internet Explorer 相同的插件名称,但我不确定。

我直接从这个网站(这个网站的用户!)获得我的代码:http://thecodeabode.blogspot.com/2011/01/detect-adobe-reader-plugin.html

该代码在 Windows 7 上的 IE11 之前运行良好,它在 getAcrobatVersion 中返回 null。

这是完整的代码,这样对大家来说更容易:

var getAcrobatInfo = function() {

var getBrowserName = function() {
return this.name = this.name || function() {
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) return "ie";
else if(userAgent.indexOf("firefox") > -1) return "firefox";
return userAgent;
}();
};

var getActiveXObject = function(name) {
try { return new ActiveXObject(name); } catch(e) {}
};

var getNavigatorPlugin = function(name) {
for(key in navigator.plugins) {
var plugin = navigator.plugins[key];
if(plugin.name == name) return plugin;
}
};

var getPDFPlugin = function() {
return this.plugin = this.plugin || function() {
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');
}
}();
};

var isAcrobatInstalled = function() {
return !!getPDFPlugin();
};

var getAcrobatVersion = function() {
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;
}
}
// The returned object
return {
browser: getBrowserName(),
acrobat: isAcrobatInstalled() ? 'installed' : false,
acrobatVersion: getAcrobatVersion()
};
};

var info = getAcrobatInfo();
if(info.acrobat){
//IE11 will return false even if you have adobe reader because it's a terrible browser.
document.write('<img src="img/sysChkErr.gif" alt="" border="0">');
document.write('<span style="color: ' + errCol + '"><strong>Not Installed</strong></span>');
document.write('<br /><br />Some of our applications require Adobe Reader. You can download Adobe Reader ');
document.write('<a href="http://get.adobe.com/reader/" target="_blank">here</a>.');
}else{
document.write('<img src="img/sysChkPas.gif" alt="" border="0">');
document.write('<span style="color: ' + pasCol + '"><strong>Installed</strong></span>');
document.write('<br /><br />Version ' + info.acrobatVersion + ' is installed.');
}

最佳答案

if(userAgent.indexOf("msie") > -1) 将不再在 IE11 中完成这项工作,因为 the user agent string has changed .对于 IE11,您必须寻找 Trident

MediaElement.js worked around this像这样:

t.isIE = (nav.appName.match(/microsoft/gi) !== null) || (ua.match(/trident/gi) !== null);

所以我想这可能对您有用?

  else if(userAgent.indexOf("msie") > -1 || userAgent.indexOf("trident") > -1)  return "ie";

关于javascript - 使用 JavaScript 在 ie11 中检测 Adob​​e Reader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21485521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com