首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用adobe pdf覆盖Safari10的"WebKit Built in pdf“?

如何用adobe pdf覆盖Safari10的"WebKit Built in pdf“?
EN

Stack Overflow用户
提问于 2016-10-19 02:11:54
回答 1查看 527关注 0票数 0

我想用adobePDFViewer.plugin覆盖Safari10的"webkit built in pdf“,这样JavaScript中的navigator.plugins就可以检测到adobePDFViewer插件,而不是"WebKit Built in pdf”。

这是我在最新的Safari10的控制台中从navigator.plugins得到的插件数组。

平台:"MacIntel“

插件: PluginArray

0:插件{0: MimeType,1: MimeType,2: MimeType,名称:"WebKit内置PDF",文件名:"",描述:"",长度: 3,项目:函数,…}

长度:1

PluginArray原型

产品:“壁虎”

productSub:"20030107“

userAgent:"Mozilla/5.0 (Macintosh;英特尔Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML,如Gecko)版本/10.0Safari/602.1.50“

供应商:"Apple Computer,Inc.“

vendorSub:"“

webdriver:未定义

EN

回答 1

Stack Overflow用户

发布于 2016-10-19 14:21:22

大家好,我自己找到了这个解决方案的答案…!到目前为止,Safari和其他最新的浏览器和Firefox通过navigator[]对象数组限制枚举,这意味着它不允许插件枚举navigator.plugins[]内容。此更改不会禁用任何插件;它只是从枚举中隐藏了一些插件名称。

从理论上讲,所有的插件名称都可以隐藏起来,因为web内容可以通过插件名称来查询https://wiki.mozilla.org/Fingerprinting。不幸的是,我们不能遮盖所有的插件名称,因为许多流行的网站通过枚举navigator.plugins[]并逐个比较插件名称来检查Flash或QuickTime,而不是仅仅通过名称来询问navigator.plugins"Shockwave Flash“。这些网站应该被修复。

代码语言:javascript
复制
 for (plugin of navigator.plugins) { console.log(plugin.name); }

 "Shockwave Flash"
 "QuickTime Plug-in 7.7.3"
 "Default Browser Helper"
 "Unity Player"
 "Google Earth Plug-in"
 "Silverlight Plug-In"
 "Java Applet Plug-in"
 "Adobe Acrobat NPAPI Plug-in, Version 11.0.18"
 "WacomTabletPlugin"

  navigator.plugins["Adobe Acrobat NPAPI Plug-in, Version 11.0.18"].name // get cloaked plugin by name

  "Adobe Acrobat NPAPI Plug-in, Version 11.0.18"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40115200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档