NOSCRIPTサイトの状態:
たとえば、設定noscript.allowedMimeRegExp
値を
FRAME@https?://somesite\.com
FONT@https?://some-other-site\.com
WebGL@https://www\.khronos\.org
は、somesite.comからのFRAME / IFRAMEロード、some-other-site.comからのWebフォント、およびからのWebGL 3Dコンテンツを永続的に許可しますhttps://www.khronos.org
。
ABEができるとは思いません。特定のサイト/ドメインでのみフォントを有効にするハックな方法の1つは、Vimperator / Pentadactylを使用して、LocationChangeイベントでMimeRegExp設定を自動的に変更することです。ページを離れるときに設定を元に戻すには、負の先読みを持つ式を使用する.vimperatorrcでこの単純な関数(Anekosから取得)を使用できます。
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が再度リロードを実行(ループ)しないようにする必要があるようです。おそらく、PageLoadPreイベントの別のautocmdがブール値に使用される可能性があります。これはかなり醜くなっています。ごめんなさい。
ps。単純なURLベースの設定切り替えのより便利なアプリケーションは、明らかにダウンロードディレクトリを変更することです。
編集(2017):uBlock Originを使用すると、特定のタイプのhtmlオブジェクト、ファイル、または動作を明確にターゲットにできます。
動的ルールと静的ルールの両方で、ドメイン/ URLに対してオリジンを許可することを指定しています。これを数年使用しています。タイプには、フォントだけでなく、インラインスクリプト、スタイルシート、画像、オブジェクト、スクリプト、xmlhttprequest、sub_frame、media、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(「ノーオペレーション」)我々はまだ(一般的に広告ブロックや悪意のある広告リストとして知られている分散型のルールで定義された)フィルタリング静的ルールを適用します。