真の拡張機能/アドオンとは別に、Greasemonkeyスクリプトを使用することもできます。これには通常、アドオンまたは組み込みのブラウザーサポート†が必要です。しかし、Mac上の非HTTPSサイトの場合、GlimmerBlockerを使用して、このようなスクリプトをすべてのブラウザーに一度に追加できます。
GlimmerBlockerはhttpプロキシとして実装されているため、Safari(または任意のブラウザー、Arjan)の安定性は、ハックを使用しないため、損なわれません。NetNewsWireなど、httpを使用する他のすべてのブラウザーおよび他のネイティブMac OS Xアプリケーションとも互換性があります。
GlimmerBlockerを壊すことなく(または新しいリリースを待つことなく)、Safari [またはブラウザー]をいつでもアップグレードできます。また、Safari [またはブラウザ]をアップグレードせずにGlimmerBlockerをアップグレードできます。これにより、ベータ版[..]の使用がはるかに簡単になります。
への参照を単にブロックするだけでなく.swf
、Transformオプションを使用してHTMLを書き換えることもできます。しかし、最も簡単な解決策を追加するGlimmerBlocker機能で任意の JavaScriptを任意のページ:
- 新しいルールを追加します(オプションで、最初に新しいフィルターを追加してルールを保存します)
- 「ルールタイプ」を「ホワイトリストURL、オプションでコンテンツを変更する」に設定します
- 「javascript」ペインで、たとえば、Alexey RuzanovによるAdBlock Greasemonkeyスクリプトのソースを追加します 。
Alexey Ruzanovの実際のアドオンは使用していませんが、GreasemonkeyスクリプトでOption-Fを押すと、現在のWebサイトのホワイトリストが切り替わります。特定のFlashを一時的に有効にするには、ブロックされたコンテンツに対して表示されるFlashアイコンをクリックします。Flash URLのコピーを含むその他のオプションについては、そのアイコンを右クリック(またはCtrlキーを押しながらクリック)します。残念ながら、サイトがホワイトリストに登録されているかどうかは、DOMストレージまたはCookieのいずれかを使用して記憶され、両方ともブラウザー固有です。そのため、あるブラウザでFlashを有効にしても、別のブラウザでは有効になりません。
そしてもちろん、ボーナスとして、プレーンHTTPサイトの場合、GlimmerBlockerの広告ブロックを取得します。
ただし、注意してください:
FlashBlockはHTMLローカルストレージを使用するため、Flashを使用しているかプライベートブラウジングモードであっても、アクセスするサイトごとにローカルハードディスクに痕跡を残すことがあります。
これは、安全なHTTPSページのフィルタリングには使用できません。プロキシは、コンテンツを覗き込むことはできません。もちろん、変更することもできません。さらに、GlimmerBlockerはIPアドレスでもブロックできません。「ホスト」の値は、実際にはHost headerの値であり、HTTPSトラフィックでは表示できません。それはさておき、hostsファイルでIPアドレスをブロックするのは簡単です。
プレーンなHTTPページを表示している場合でも、HTTPSリソースへの参照もブロックできません。HTTPウェブサイトがあなたが見ているものをGoogleやFacebookに伝えるのを止めたいように、ブロック<iframe src="https://plusone.google.com/...">
することはあなたが見ているページのHTMLを本当に変更する必要があります。ブラウザアドオンはそこでより良い仕事をし、おそらくドメインが変更されたときにも更新されます。それでも、GlimmerBlockerでそれを行うことを主張する人には、特定のドメインをダミーに書き換えることができます。「変換」ペインで、「コンテンツタイプのみ」を「任意のテキストタイプ」に設定し、以下を追加します。
// Rewrite "plusone.google.com" to "plusone.google.com.blocked", and so on:
replace(/(plusone\.google\.com)/g, "$1.blocked");
replace(/(apis\.google\.com)(\/js\/plusone)/g, "$1.blocked$2");
replace(/(facebook\.com)/g, "$1.blocked");
replace(/(facebook\.net)/g, "$1.blocked");
replace(/(fbcdn\.net)/g, "$1.blocked");
一部のJavaScriptが単純なテキスト置換では簡単に認識されない方法でドメイン名を書き出す場合、これは依然として失敗します。
† Firefoxの場合と同様に、元のアドオンが必要ですが、OperaとChromeには組み込みのサポートがあります。参照してくださいウィキペディアをより多くのブラウザの詳細については。