gpt4 book ai didi

c# - 如何知道浏览器是否有 PDF 查看器?

转载 作者:技术小花猫 更新时间:2023-10-29 12:25:39 25 4
gpt4 key购买 nike

我正在 iframe 中查看 PDF。它工作正常。但有些客户端无法在 IE 中看到它。他们将其作为下载选项获取。

如何判断浏览器是否有pdf查看器并提示用户没有pdf查看器?

注意:我使用的是 asp.net mvc 5 (c#)。

我试过了 this ,但不要帮助我。我的一些客户有 Adob​​e PDF 的问题,所以下面的答案没有问题。但是那些拥有 nitropdf 或 chrome pdf 查看器的人,下面的回答对我没有帮助。我想识别所有 pdf 查看器。否则,如果客户端有某种 pdf 查看器,则会显示未安装 pdf 查看器的警报。 这是错误的。

我通过从 عبد النور التومي's answer 获得帮助来应用此代码它适用于 chrome 和 mozilla。 Here is the js I modified .

但是 IE 仍然没有响应。 我不知道如何在 IE 中检查它是否有 pdf 查看器。对于 IE,尽管有 pdf 查看器,但我收到以下错误:

enter image description here

最佳答案

有一个JS解决方案:

var hasPdfViewer = getAcrobatInfo().acrobat ==="installed";

已知 API getAcrobatInfo 是:

// http://thecodeabode.blogspot.com
// @author: Ben Kitzelman
// @license: FreeBSD: (http://opensource.org/licenses/BSD-2-Clause) Do whatever you like with it
// @updated: 03-03-2013

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()
};
};

关于c# - 如何知道浏览器是否有 PDF 查看器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24055738/

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