如何检测和/或阻止破坏我的网站的浏览器扩展?

5
越来越多我们的用户(我管理一个法国博客平台)在抱怨我们的界面上出现了bug。90%的情况下,问题来自于用户浏览器上安装的插件。用户经常甚至不知道他们有这些插件。
例如,Avast可以移除分享按钮(Twitter、FB),还有一些像Pricepeep、Slick Saving、Deaply Shopping、VideoFileDownload或Pricora的扩展会完全搞乱我们的界面。
问题是用户相信这是我们的错,然后没有进一步调查就退出了:-(
你是否有神奇的解决方案来阻止或检测一些或所有坏的浏览器扩展?提前致谢!

3
为什么分享按钮的隐藏会破坏你的界面?听起来似乎是你的问题。 - Evan Davis
如果界面包含分享按钮,用户期望找到分享按钮,那么移除该共享按钮将破坏界面。问“为什么从UI中删除某些元素会破坏UI?”是一个奇怪的问题。此外,原帖提到删除共享按钮只是扩展的许多会破坏UI的效果之一。 - gkalpak
Mathletics,你真的读了这个问题或者对情况有任何想法吗?显然不是。 - Zig Mandel
感谢Zig Mandel。移除按钮不会破坏界面。但是一些扩展由于各种原因可能会破坏界面。 - Godefroy
我不确定如何检测特定的扩展名,但你绝对可以防止它们破坏你的用户界面。在一个类似的问题中,我详细介绍了一种使用"变异观察器"来防止外部DOM操作的方法。请参见https://dev59.com/HmQn5IYBdhLWcg3wgnTg#16803650。 - BeardFist
2个回答

3
如果您认为值得麻烦,您可以实现自己的扩展程序(并提供给用户安装以摆脱破坏界面的问题)。
在这个扩展中,您应该使用{{link1:chrome.management API}}来:
  1. 使用方法{{link2:getAll()}}获取所有已安装和启用的扩展。
  2. 检测您知道会对UI造成问题的扩展程序(例如,根据已知会引起麻烦的扩展ID或名称来过滤已安装和启用的扩展程序)。
  3. 通知用户有关情况。
  4. 提供禁用甚至卸载有问题的扩展的选项disableuninstall
(我没有测试过,但据说即使没有用户干预,您也可以禁用或卸载扩展程序,但即使可行,这也不是一个好的做法。)

0

我认为你无法阻止这些扩展,但是你可以检测到你的按钮被隐藏了,如果是这样的话,你可以显示一条消息来向用户解释他们可能安装了某个扩展,并提供删除它们的说明。这将涵盖大多数情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接