Webbrowser,检测是否安装了PDF阅读器?
有没有办法检查用户是否安装了PDF阅读器? 也许有ActiveX组件Webbrowser,检测是否安装了PDF阅读器?,pdf,browser,internet-explorer-8,Pdf,Browser,Internet Explorer 8,有没有办法检查用户是否安装了PDF阅读器? 也许有ActiveX组件 你能帮帮我吗?不,我不这么认为,但默认情况下,你可以通过谷歌的PDF阅读器直接链接,这对每个人都适用 请注意,这将通过Google的服务器引导您的PDF文件,因此您将失去安全性。您可以使用window.navigator.plugins来检测已安装的插件 这将返回一个包含已安装插件详细信息的数组,但这不适用于Internet Explorer。运行此代码时,IE仅返回页面中带有嵌入标记的数组。谢谢你,这么有用吗 好的,让我们
你能帮帮我吗?不,我不这么认为,但默认情况下,你可以通过谷歌的PDF阅读器直接链接,这对每个人都适用
请注意,这将通过Google的服务器引导您的PDF文件,因此您将失去安全性。您可以使用
window.navigator.plugins来检测已安装的插件
这将返回一个包含已安装插件详细信息的数组,但这不适用于Internet Explorer。运行此代码时,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;
}
对于IE,我们应该试试这个
function hasPlugin(name) {
try {
new ActiveXObject(name);
return true;
} catch (e) {
return false;
}
}
您可以调用此函数并检查IE的插件状态
hasPlugin('ShockwaveFlash.ShockwaveFlash');
您可以像这样跨浏览器声明此函数
hasPlugin('Flash');
hasPlugin('QuickTime');
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;
}
}
var插件;
if(navigator.userAgent.indexOf('MSIE')){
hasPlugin=函数(名称){
试一试{
新的ActiveXObject(名称);
返回true;
}捕获(e){
返回false;
}
}
}
否则{
hasPlugin=函数(名称){
name=name.toLowerCase();
var plugins=window.navigator.plugins;
for(var i=0,len=plugins.length;i-1){
返回true;
}
}
返回false;
}
}
然后,您可以通过跨浏览器的方式调用该函数。很抱歉,我没有为我的浏览器安装任何PDF插件——Firefox、Chrome或IE——因此我可以告诉您我们应该传递hasPlugin函数的参数的确切名称
我希望,这会对你有所帮助。顺便说一句,我没有在浏览器中尝试这些代码,这对我来说是一种社会学知识。但是我想这会帮助你-希望-:-)这对我很有用:
从评论区,也可以获得Safari浏览器的更正。仔细考虑为什么要检测到这一点,以及您试图实现的目标。人们可以在没有安装插件的情况下阅读PDF文件。这个答案怎么可能是正确答案?函数hasPlugin在任何情况下都将返回true。StackOverflow正在吞噬的一定是打字错误或语法错误。请仔细考虑数据保护。如果您的用户已将文档上传到您的网站,他们是否知道该文档正在被谷歌处理(因此可能也被存储)?这是一个很好的观点@freefaller-我会将其添加到答案中,以帮助其他人理解这一点。