web-dev-qa-db-ja.com

アドオンまたは拡張子を持つ単一のJavaScriptファイルを無効にする

FirefoxアドオンまたはChrome拡張機能を使用すると、特定のJavaScriptファイルの実行を無効にできるようになります。特定のCSSファイルを無効にするものはたくさんあります。 JSファイルと同じです。いくつかの制限はありますか、それとも投稿する前にもっとよく検索するべきでしたか?

23
henrijs

ChromeのAdBlockは、JSファイルをブロックするために使用できます.....
https://chrome.google.com/webstore/detail/gighmmpiobklfepjocnamgkkbiglidom
... AdBlockアイコンをクリックして[リソースリストを表示]を選択し、ブロックするJSを探して、その横にあるボックスにチェックマークを付けて選択します。

設定で、「私は上級ユーザーです。詳細オプションを表示します。」選択する必要があります。

21
PAEz

これは、Chrome拡張機能、 webRequest APIを使用して、非常に簡単に実行できます。以下の例では、ブロック all外部スクリプト。<all_urls>より具体的なパターン に置き換えます。非常に動的なパターンの場合は、 chrome.webRequest.onBeforeRequest イベントリスナー。

  1. 新しいディレクトリを作成します。
  2. 以下のファイルを作成します。
  3. 解凍された拡張機能をchrome://extensions/を介して開発者モードでロードします

background.js

chrome.webRequest.onBeforeRequest.addListener(
  function() { return {cancel: true}; },
  {
    urls: ["<all_urls>"], // Change this to a more specific pattern
    types: ["script"]
  },
  ["blocking"]
);

manifest.json

{
   "name": "Block request",
   "version": "1.0",
   "manifest_version": 2,
   "background": {
       "scripts": ["background.js"]
   },
   "permissions": [
       "webRequest",
       "webRequestBlocking",
       "<all_urls>"
   ]
}

PS。 chrome.declarativeWebRequest APIに注意してください。執筆の時点では、それはベータ/開発チャネルにありますが、あなたがこの答えを読んだとき。この新しいAPIはwebRequest AP​​Iよりも効率的で、バックグラウンドページの代わりに event pages を使用できます(webRequest AP​​Iはイベントページでは使用できません) 。

21
Rob W

これは、ブラウザデバッガの動作方法の制限だと思います。コード内のファイルをコメント化してテストする方がおそらく簡単です。

0