我想用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:未定义
发布于 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“。这些网站应该被修复。
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"https://stackoverflow.com/questions/40115200
复制相似问题