Способ предотвратить загрузку сторонних элементов в Safari? - PullRequest
1 голос
/ 20 июня 2011

В основном, я ищу RequestPolicy для Safari. GlimmerBlocker, Privoxy, BFilter и т. Д., Они работают хорошо, но ни один из них не поддерживает функцию «блокировать сторонние элементы».

Я использую GlimmerBlocker, и чтобы имитировать (едва) функцию, я в основном помещал этот код для фильтрации сайта, загруженного скриптом.

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

Однако я устал от повторения создания фильтров для каждого сайта. И наоборот, белый список будет таким же. Если бы у кого-то была идея решить эту проблему, это было бы так здорово. Спасибо.

1 Ответ

5 голосов
/ 24 июня 2011

Я сделал это расширение Safari для проверки концепции, чтобы блокировать внешние ресурсы (изображения, объекты и сценарии, но НЕ связывать элементы, такие как ссылки таблицы стилей), пока это не разрешено. У него есть минимальное количество функций, но если вам интересно, я мог бы развить его дальше.

Я говорю «внешний», а не «сторонний», потому что я не знаю, чтобы достоверно сказать, является ли ресурс сторонним или нет. Это расширение просто блокирует все ресурсы, которые поступают с хоста, отличного от веб-страницы. В результате по умолчанию блокируется слишком много ресурсов.

Вы можете щелкнуть правой кнопкой мыши на заблокированном изображении и использовать команду контекстного меню, чтобы добавить в белый список хост изображения. Если заблокированное изображение не имеет указанных ширины и высоты, оно будет невидимым, поэтому вы не сможете щелкнуть по нему правой кнопкой мыши. (Чтобы исправить это, мне нужно будет добавить код, чтобы сделать пустое изображение видимым в виде рамки.)

Команда белого списка не отображается для заблокированных подключаемых объектов (таких как объекты Flash) или сценариев. Мне придется добавить код, чтобы справиться с этим.

Вы также можете внести в белый список сам текущий сайт, что означает, что все внешние ресурсы будут разрешены на этом сайте. Опять же, это делается с помощью команды контекстного меню.

Пока что нет способа удалить элементы из любого белого списка. Это можно добавить.

Скачать расширение можно здесь .

Вы можете извлечь исходные файлы из пакета расширения с помощью этой команды:

xar -xf PartyPooper.safariextz

Вы можете делать что угодно с источником.

...