1

基本上,我正在寻找Safari的RequestPolicy 。GlimmerBlocker、Privoxy 和 BFilter 等,它们运行良好,但它们都不支持“阻止 3rd 方元素”功能。

我使用 GlimmerBlocker,为了模仿(勉强)这个功能,我主要把这段代码用于过滤脚本泛滥的网站。

replace(/<(script|noscript|iframe)([\s\S]*?)<\/(script|noscript|iframe)>/img, "")

但是,我厌倦了为每个网站重复创建过滤器。反之亦然,白名单将是相同的。如果有人有解决这个问题的想法,那就太好了。谢谢。

4

1 回答 1

5

我制作了这个概念验证 Safari 扩展来阻止外部资源(图像、对象和脚本,但不包括链接元素,例如样式表链接),直到允许为止。它具有最少数量的功能,但如果您有兴趣,我可能会进一步开发它。

我说“外部”而不是“第三方”,因为我不知道可靠地判断资源是否是第三方。此扩展程序仅阻止来自与网页不同的主机的所有资源。结果,默认情况下它会阻塞太多资源。

您可以右键单击被阻止的图像并使用上下文菜单命令将图像主机列入白名单。如果被阻止的图像没有指定的宽度和高度,它将是不可见的,因此您将无法右键单击它。(为了解决这个问题,我需要添加代码以使空图像显示为一个框。)

白名单命令不会针对被阻止的插件对象(例如 Flash 对象)或脚本显示。我将不得不添加代码来处理这个问题。

您还可以将当前站点本身列入白名单,这意味着该站点上将允许所有外部资源。同样,这是通过上下文菜单命令完成的。

到目前为止,还没有办法从任一白名单中删除项目。这个可以加。

从这里下载扩展

您可以使用以下命令从扩展包中提取源文件:

xar -xf PartyPooper.safariextz

欢迎您对源代码做任何您喜欢的事情。

于 2011-06-24T01:14:40.567 回答