问题描述
|
有没有一种方法可以检查用户是否已安装PDF阅读器?
也许带有ActiveX组件?
请你帮助我好吗?
解决方法
您可以使用
window.navigator.plugins
检测已安装的插件
这将返回一个包含已安装插件详细信息的数组,但是不适用于Internet Explorer。运行此代码时,IE仅返回页面中带有嵌入标签的数组。谢谢IE,那么有用吗?
好的,让我们尝试解决这个问题。以下功能应该在所有主要的IE浏览器中都可以使用。
function hasPlugin(name) {
name = name.toLowerCase();
var plugins = window.navigator.plugins;
for (var i=0,len = plugins.length; i < len; i++) {
if (plugins[i].name.toLowerCase().indexOf(name) > -1) {
return true;
}
}
return false;
}
您可以调用此函数并按如下方式检查插件状态
hasPlugin(\'Flash\');
hasPlugin(\'QuickTime\');
对于IE,我们应该尝试一下
function hasPlugin(name) {
try {
new ActiveXObject(name);
return true;
} catch (e) {
return false;
}
}
您可以调用此函数并检查IE的插件状态
hasPlugin(\'ShockwaveFlash.ShockwaveFlash\');
您可以像这样跨浏览器进行此函数声明
var hasPlugin;
if (navigator.userAgent.indexOf(\'MSIE\')) {
hasPlugin = function(name) {
try {
new ActiveXObject(name);
return true;
} catch (e) {
return false;
}
}
}
else {
hasPlugin = function(name) {
name = name.toLowerCase();
var plugins = window.navigator.plugins;
for (var i=0,len = plugins.length; i < len; i++) {
if (plugins[i].name.toLowerCase().indexOf(name) > -1) {
return true;
}
}
return false;
}
}
然后,您可以通过跨浏览器方式调用该函数。抱歉,我没有为我的浏览器-Firefox,Chrome或IE-安装任何PDF插件,所以我可以告诉您确切的名称我们应该传递hasPlugin函数的参数。
我希望这能帮到您。顺便说一句,我没有在浏览器中尝试过该代码,这对我来说是一种理论知识。但是我想这会帮助您-希望-:-)
,不,我不这么认为-但您始终可以默认通过Google的PDF阅读器定向链接-这对每个人都有效。
http://docs.google.com/viewer
请注意,这将通过Google的服务器引导您的PDF文件,因此您将失去安全性。
,这对我非常有用:
Java脚本-Adobe插件检测器
在评论区域中,也可以获取Safari浏览器的更正。