In this second installment of the series exploring the developer tools within Firefox, we will look at some of the more interesting commands and keyboard shortcuts you can use to make your life easier while using the console.
Table of Contents
Selecting elements
If you have used jQuery, you might be familiar with using the $ for selecting DOM elements on the page. The console exposes different variations of that symbol as a quick way to reference objects in your document.
$
Is equivalent to the document.querySelector method as it returns the first element in the document which matches the selector.
Note that if you are using a library like the forementioned jQuery, using $ will call the function of the same name directly from the library instead.
$$
Is equivalent to document.querySelectorAll but, unlike that method, it will return an array instead of a standard NodeList. Which means you have direct access to all the methods on the Array prototype such as forEach, map, filter, etc…
$0
Will return the currently Inspected element on the page. It is one you are likely to use often every time you want a quick glance at a specific node.
$_
Will return the result of the last expression executed in the console's command line. It is very handy to know when making adjustments directly from the console.
Inspecting elements
keys()
When passed an object as an argument, this function returns an array of the keys on that object. In this sense, it is the console's equivalent to the Object.keys method.
inspect()
This function takes an object as an argument and opens the inspector for that object. At first this can seem like a roundabout way to do things, but I assure you it can be amazing when using the console within the debugger as we'll see in the next chapter.
cd()
Think of this as the cd command from your usual command line. The cd function in the console allows you to switch between execution context from the top-level document to any of the embedded iframes within it. There are 3 ways you can use it:
- Pass the iframe DOM element
- Pass a CSS selector that matches the frame
- Pass the iframe's global window object
To return to the top level document, again like in your usual command line, simply run the function with no arguments.
While writing this, I learned that the cd command will be deprecated in a future release. Play with it while you can!
Other useful commands
copy()
This function will copy the argument you pass to it to your clipboard.
clearHistory()
You can research the console history using F9 (Ctrl + R on macOS) and enter part of an expresion. Continuing to type F9 (Ctrl+ R on macOS) cycles backwards through the matches, while Shift + F9 (Ctrl + S) will search forward in the list of matches.
You can thus clear the history by using the clearHistory command.
:help
This command will bring you to the MDN help page for the console in a new tab. Use it whenever you feel like getting a refresher on the commands or checking some of the other commands not discussed in this article.
:screenshot
You can and probably should mostly use the GUI in the contextual tab bar menu to take a screenshot of webpages, but the developers at Mozilla thought of giving developers an easy access to the same functionality within the console with even more powers.
By default, executing :screenshot within the console will take a screenshot of the viewport and save it as a png file with the name encoded as ... . But it accepts a set of arguments to make it even more powerful.
-
--clipboardwill save the screenshot to your clipboard instead of saving it to your downloads folder. -
--delaytakes a the number of seconds to delay the screenshot for. -
--dprspecifies the device pixel ratio use when taking the screenshot as the number passed to it. -
--fullpagewill take a screenshot of the entire document instead of the visible area only. -
--selectorwill take a selector and only include the matching element(s) in the screenshot. -
--filewill save the file to your specified downloads folder even if the--clipboardflag was enabled. You will then end up with a copy to the clipboard and also the file saved in your prefered location.
In fact, using the following command now
:screenshot --filename 'firefox-console-article.png' --file --clipboard --selector '#article-show-container' --delay 0.5
should put an image named 'firefox-console-article.png' in your downloads folder and your clipboard after a delay of half a second.
Bonus
- Instead of using the
clear()function over and over again to clear the terminal it is best to use theCtrl + Lto do so. Again, just like in bash or zsh. - The console can be toggled from any of the other dev tools by using the
Esckey.
Next, we will take a look at the debugger and how you can use it with the console to speed up your debugging process. Until then, take care!
Top comments (0)