防止在Safari上加载第三方元素的方法?

pro*_*vdr 1 safari macos safari-extension

基本上,我正在寻找Safari的RequestPolicy.GlimmerBlocker,Privoxy和BFilter等,这些都运行良好,但没有一个支持"阻止第三方元素"功能.

我使用GlimmerBlocker,并模仿(勉强)函数,我主要把这段代码用于过滤脚本泛滥的网站.

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

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

chu*_*ter 5

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

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

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

白名单命令不会显示已阻止的插件对象(如Flash对象)或脚本.我将不得不添加代码来处理它.

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

到目前为止,无法从白名单中删除项目.这可以添加.

从这里下载扩展程序.

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

xar -xf PartyPooper.safariextz
Run Code Online (Sandbox Code Playgroud)

欢迎您使用来源做任何您喜欢的事情.