Disable single javascript file with addon or exten

2019-01-13 16:52发布

问题:

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?

回答1:

AdBlock for Chrome can be used to block JS files.....
https://chrome.google.com/webstore/detail/gighmmpiobklfepjocnamgkkbiglidom
...Click on the AdBlock icon and select "Show the resource list" and look for the JS you want to block and tick the box next to it and make your selections.
Note
In settings, "I'm an advanced user, show me advanced options." should be selected.



回答2:

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).



回答3:

I believe this is a limitation of the way a browser debuggers work. It is probably more easy to just comment out the files in the code and test it.