I would like to debug bookmarklets. How can I do this? Preferably in Firefox.
Bookmarklets has only one line of code so direct debugging them is impracticable.
If I create "script" tag with code which I send from bookmarklet, code from this "script" tag isn't listed on Firebug scripts... (this code run properly, only can't debugging)
Alternatively, If there is a possibility to debug code typed in a console, it will be OK too.
There are three ways to open the debugger: Select the Debugger panel in the Web Developer Tools, accessible from the Browser Tools submenu. Press Ctrl + Shift + Z on Windows and Linux, or Cmd + Opt + Z on macOS (starting in Firefox 71; prior to Firefox 66, the letter in this shortcut was S ). Press the menu button.
You can do this with the keyboard using the shortcut CMD-OPT-I on macOS or CTRL-SHIFT-I on Windows. The Dev Tools will now be open inside the browser tab, and the Console tab will be active. This tab allows you to execute arbitrary JavaScript code at any time or to view any outputs from console.
Make a bookmarklet like this:
javascript:document.body.appendChild(document.createElement('script')).setAttribute('src','http://localhost/test.js');void(0);
It would automatically appear in Firebug, as simple as that. (Assuming you have recent versions of Firefox and Firebug)
Use you development version of code in the test.js
file and use debugger;
or insert the breakpoints manually.
Extra note: If you face problems like your code works in development mode (by including file as mentioned above) but does not work when it is converted to a single line bookmarklet, then there must be a problem in the conversion/encoding you did to make it single line.
Paste your bookmarklet into the developer console, but before you execute it, add a debugger;
statement on the first line. The bookmarklet will appear in the debugger under a tab called "SOURCE".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With