Mac 上 Chrome 浏览器的最佳 Flash 拦截器是什么?

Bry*_*etz 11 flash google-chrome plugins browser-addons macos

查看 Chromium 的扩展库,似乎有许多可用的 Flash 阻止扩展:

替代文字

甚至是名字非常相似的一对。我一直在 Safari 中使用 ClicktoFlash,并且习惯了它在任何地方都能正常工作。不幸的是,在使用 Ruzanow 的 FlashBlock 一段时间后,我注意到它有时会变得有点“Hinky”(通过折叠 div 来阻止 Flash,因此您无法单击以启用它等)

我有一种感觉,上面没有列出的其他一些扩展/脚本可能更好。最终,我想找到一个与 Safari 中的 ClickToFlash 一样有效的 Flash 拦截器。

Bry*_*etz 9

严格根据特点:

Josorek 的 Flashblock

  • 可以阻止 Flash 或 Silverlight 或两者
  • 您有一个选项窗格
  • 您可以在网站白名单中添加和删除
  • 您可以另外配置占位符图标的设置(位置、透明度)

鲁扎诺的 Flashblock

  • 将阻止 Flash 和 Silverlight
  • 您可以通过访问相关站点、右键单击占位符图标并选择禁用此站点的 Flashblock 来将站点添加到白名单。(似乎没有办法避免这种情况,或进一步管理白名单。

杀死闪电侠

  • 默认情况下,某些网站已列入白名单,包括 YouTube 和 Gmail(似乎无法将新网站添加到此白名单或删除现有网站。)


Arj*_*jan 5

除了真正的扩展/附加组件,还可以使用Greasemonkey脚本。这通常需要附加组件或内置浏览器支持。但是对于 Mac 上的非 HTTPS 站点,可以使用GlimmerBlocker 一次性将此类脚本添加到所有浏览器:

GlimmerBlocker 是作为http 代理实现,因此 Safari [或任何浏览器,Arjan] 的稳定性不会受到影响,因为它不使用任何黑客。它甚至与所有其他浏览器和其他使用 http 的本地 Mac OS X 应用程序兼容,例如 NetNewsWire。

您将始终能够升级 Safari [或任何浏览器],而不会破坏 GlimmerBlocker(或等待新版本);并且您无需升级 Safari [或任何浏览器] 即可升级 GlimmerBlocker。这使得使用 beta 版本变得更加容易 [..]。

除了简单地阻止对 的引用之外.swf,还可以使用其Transform选项来重写 HTML。但最简单的解决方案是使用 GlimmerBlocker 功能将任何JavaScript添加到任何页面:

  • 添加新规则(可选,首先添加新过滤器来存储规则)
  • 将“规则类型”设置为“白名单 URL,可选择修改内容”
  • 在“javascript”窗格中添加源代码,例如Alexey Ruzanov的 AdBlock Greasemonkey 脚本。

我没有使用 Alexey Ruzanov 的真正附加组件,但在他的 Greasemonkey 脚本中按 Option-F 会切换当前网站的白名单。要临时启用某些特定的 Flash,请单击为阻止的内容显示的 Flash 图标。右键单击(或按住 Ctrl 键单击)该图标可获得更多选项,包括复制 Flash URL。不幸的是,网站是否被列入白名单是使用DOM 存储或 cookie记住的,两者都是特定于浏览器的。因此,在一个浏览器中启用 Flash 并不会在另一个浏览器中启用它。

当然,作为奖励,对于普通 HTTP 站点,可以获得 GlimmerBlocker 的广告拦截功能。

但是,请注意:

  • FlashBlock 使用 HTML 本地存储,因此可能会在您访问的每个站点的本地硬盘上留下痕迹,无论它是否使用 Flash,甚至是在隐私浏览模式下。

  • 这不能用于过滤安全的 HTTPS 页面。代理无法窥视内容,更不用说更改内容了。更重要的是,GlimmerBlocker 也无法阻止 IP 地址:“Host”的值实际上是Host 标头的值,它在 HTTPS 流量中看不到。除此之外,在主机文件中更容易阻止 IP 地址。

  • 即使在查看纯 HTTP 页面时,也无法阻止对 HTTPS 资源的引用。就像阻止 HTTP 网站告诉 Google 和 Facebook 您正在查看的内容一样,阻止<iframe src="https://plusone.google.com/...">确实需要您更改正在查看的页面的 HTML。浏览器插件在这方面做得更好,并且可能还会在域更改时更新。尽管如此,对于那些坚持在 GlimmerBlocker 中这样做的人来说:可以将特定域重写为某个虚拟域。在“转换”窗格中,将“仅用于内容类型”设置为“任何文本类型”,然后添加:

    // Rewrite "plusone.google.com" to "plusone.google.com.blocked", and so on:
    replace(/(plusone\.google\.com)/g, "$1.blocked");
    replace(/(apis\.google\.com)(\/js\/plusone)/g, "$1.blocked$2");
    replace(/(facebook\.com)/g, "$1.blocked");
    replace(/(facebook\.net)/g, "$1.blocked");
    replace(/(fbcdn\.net)/g, "$1.blocked");
    
    Run Code Online (Sandbox Code Playgroud)

    如果某些 JavaScript 以简单文本替换不容易识别的方式写出域名,这仍然会失败。

与 Firefox 一样,需要原始附加组件,但 Opera 和 Chrome 具有内置支持。有关更多浏览器的详细信息,请参阅维基百科