Disable single javascript file with addon or extension

henrijs picture henrijs · Mar 14, 2012 · Viewed 33.6k times · Source

I am looking for a Firefox addon or Chrome extension that would allow me to disable particular javascript file from running. There are many of those for disabling particular CSS file, cannot seem to find one that does the same with JS files. Is there some limitations or I should have searched better before posting?

Answer

Rob W picture Rob W · Mar 14, 2012

This can be done quite easily via a Chrome extension, using the webRequest API. The example below blocks all external scripts. Replace <all_urls> with a more specific pattern. For very dynamic patterns, you can modify the chrome.webRequest.onBeforeRequest event listener.

  1. Create a new directory.
  2. Create the files below.
  3. Load the unpacked extension in Developer mode via 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. Keep an eye on the chrome.declarativeWebRequest API. At the time of writing, it's in the beta/dev channel, but when you read this answer. This new API is more efficient than the webRequest API, and allows one to use event pages instead of background pages (the webRequest API cannot be used on event pages).