Within JSP files, I have some pretty complicated Javascript. On a production machine, we\'re seeing a very weird bug that we have not been able to understand. We have neve
I know that you can modify a javascript file when using Google Chrome.
Warning: If you refresh the page, all changes will go back to original file. I recommend to copy/paste the code somewhere else if you want to use it again.
Hope this helps!
I would still recommend Firebug. Not only it can debug JS within your JSP files, it can enhance debugging experience with addons like JS Deminifier
(if your production JS is minified), FireQuery
, FireRainbow
and more.
There is also Firebug lite which is nothing but a bookmarklet. It lets you do limited things but still is useful.
Chrome as a developer console built-in that would let you modify javascript.
Using these tools, you should be able to inject your own JS too.
Firefox Developer Edition (59.0b6) has Scratchpad (Shift +F4) where you can run javascript
The problem with editing JavaScript like you can CSS and HTML is that there is no clean way to propagate the changes. JavaScript can modify the DOM, send Ajax requests, and dynamically modify existing objects and functions at runtime. So, once you have loaded a page with JavaScript, it might be completely different after the JavaScript has run. The browser would have to keep track of every modification your JavaScript code performs so that when you edit the JS, it rolls back the changes to a clean page.
But, you can modify JavaScript dynamically a few other ways:
javascript: alert (1);
The first two options are great because you can modify any JavaScript variables and functions currently in scope. However, you won't be able to modify the code and run it with a "just-served" page like you can with the third option.
Other than that, as far as I know, there is no edit-and-run JavaScript editor in the browser. Hope this helps,
I'd like to get back to Fiddler. After having played with that for a while, it is clearly the best way to edit any web requests on-the-fly. Being JavaScript, POST, GET, HTML, XML whatever and anything. It's free, but a little tricky to implement. Here's my HOW-TO:
To use Fiddler to manipulate JavaScript (on-the-fly) with Firefox, do the following:
1) Download and install Fiddler
2) Download and install the Fiddler extension: "3 Syntax-Highlighting add-ons"
3) Restart Firefox and enable the "FiddlerHook" extension
4) Open Firefox and enable the FiddlerHook toolbar button:
View > Toolbars > Customize...
5) Click the Fiddler tool button and wait for fiddler to start.
6) Point your browser to Fiddler's test URLs:
Echo Service: http://127.0.0.1:8888/
DNS Lookup: http://www.localhost.fiddler:8888/
7) Add Fiddler Rules in order to intercept and edit JavaScript
before reaching the browser/server. In Fiddler click:
Rules > Customize Rules...
. [CTRL-R]
This will start the ScriptEditor.
8) Edit and Add the following rules:
a) To pause JavaScript to allow editing, add under the function "OnBeforeResponse":
if (oSession.oResponse.headers.ExistsAndContains("Content-Type", "javascript")){
oSession["x-breakresponse"]="reason is JScript";
}
b) To pause HTTP POSTs to allow editing when using the POST verb, edit "OnBeforeRequest":
if (oSession.HTTPMethodIs("POST")){
oSession["x-breakrequest"]="breaking for POST";
}
c) To pause a request for an XML file to allow editing, edit "OnBeforeRequest":
if (oSession.url.toLowerCase().indexOf(".xml")>-1){
oSession["x-breakrequest"]="reason_XML";
}
[9] TODO: Edit the above CustomRules.js
to allow for disabling (a-c).
10) The browser loading will now stop on every JavaScript found and display a red pause mark for every script. In order to continue loading the page you need to click the green "Run to Completion" button for every script. (Which is why we'd like to implement [9].)