сайт noscript гласит:
Например, установка значения предпочтения noscript.allowedMimeRegExp
равным
FRAME@https?://somesite\.com
FONT@https?://some-other-site\.com
WebGL@https://www\.khronos\.org
будет постоянно разрешать любую загрузку FRAME/IFRAME с somesite.com, веб-шрифты с some-other-site.com и WebGL 3D-контент с https://www.khronos.org
.
Я не думаю, что ABE может сделать это. Один хакерский способ включить шрифт только для определенного сайта / домена - это использовать Vimperator / Pentadactyl и автоматически изменять настройку MimeRegExp в событии LocationChange. Чтобы отменить настройку, покидая страницу, вы можете использовать эту простую функцию (полученную от Anekos) в .vimperatorrc, которая использует выражение с отрицательным прогнозом:
js <<EOM
function add_AutoCommand(URI, onEnter, onLeave) {
let entered = false;
autocommands.add('LocationChange', '(?!' + URI + ')', function () {
if (entered) {
entered = false;
onLeave();
}
});
autocommands.add('LocationChange', URI, function () {
onEnter();
entered = true;
});
}
add_AutoCommand(https?://allow-font-on-this-site\.com,
:set! noscript.allowedMimeRegExp="FONT@https?://some-other-site\.com",
:set! noscript.allowedMimeRegExp=" "
);
EOM
Я не проверял это, но я буду.
РЕДАКТИРОВАТЬ: это должно быть
add_AutoCommand('https?:\/\/allow-font-on-this-site\\.com.*',
function(){options.setPref("noscript.allowedMimeRegExp",
"FONT@http://fonts.gstatic.com")},
function(){options.setPref("noscript.allowedMimeRegExp",
"")}
);
... но noscript не учитывает предпочтения, пока страница не будет перезагружена, поэтому либо перезагрузите вручную, либо используйте tabs.reload(config.browser.mCurrentTab, false);
Похоже, что вы должны установить логическое значение и тайм-аут, чтобы LocationChange не выполнял (таким образом, зацикливая) перезагрузку снова. Возможно, для логического значения может быть использован другой autocmd для события PageLoadPre. Это становится довольно уродливо, я знаю. Сожалею.
пс. более полезное приложение простого преф переключения на основе URL, очевидно, изменяет каталог загрузки.
РЕДАКТИРОВАТЬ (2017): С помощью uBlock Origin вы можете специально нацеливать определенные типы html-объектов, файлов или поведений.
Как динамические, так и статические правила указывают, что происхождение разрешено для домена / URL. Я использую это в течение нескольких лет. Типы включают в себя шрифт, а также встроенный скрипт, таблицу стилей, изображение, объект, скрипт, xmlhttprequest, подфрейм, медиа, websocket, popunder и popup.
пример правил:
* * 3p block
no-remote-fonts: * true
no-remote-fonts: allow-font-on-this-site.com false
allow-font-on-this-site.com font-cdn.org noop
что означает:
- блокировать сторонние запросы с любой страницы в любое место
- блокировать сторонние шрифты на любой странице из любой точки мира
- повторно включить сторонние шрифты на странице домена allow-font-on-this-site.com из любого места
- При желании повторно включите запрос на нашей странице для происхождения на домене font-cdn.org
С помощью noop («без операции») мы по-прежнему применяем статическую фильтрацию правил (обычно определяемую в распределенных правилах, известных как списки блокировки рекламы или списки вредоносной рекламы).