Firebug Tip: Log DOM Events
by Honza- Published:August 13th, 2012
- Comments:33 Comments
- Category:Firebug, Firebug Tip, Planet Mozilla
Updated: how to use this feature from the command line
This Firebug feature is called simply Log Events and allows developers to log DOM events into the Console panel.
All you need to do is right click on an element in the HTML panel, pick Log Events from the context menu and switch to the Console panel to see the logs in action.
See all Firebug tips
Logs in the Console Panel
If you activate logging e.g. for the body
element and move your mouse cursor over the page, you should immediately see mouse related events in the Console panel.
Learn & Discover Events
This feature can be also used to learn & discover existing events. Let's try to log events for an input
element.
Test input element (install Firebug and check it out right now):
The sequence of events displayed on the screenshot above corresponds to the following actions:
- focus:
tab
key pressed to set focus on the input - select
- keyup:
tab
key released (keyCode=9) - keydown:
a
key pressed (keyCode=65) - keypress
a
character pressed (charCode=97) - input Value of the input field has been changed
- keyup:
a
key released (keyCode=65) - keydown:
tab
key pressed (keyCode=9) - keypress (yet for the
tab
key pressed) - change
- blur: Focus lost
- keyup:
tab
key released (keyCode=9)
Check out DOM event reference
Event Details
Inspecting the event object (associated with an event) is also possible. Just click on the green event label and Firebug automatically selects the DOM tab with event details.
Command Line
Event logging for an element can be also activated through Firebug Command Line. There are two related commands.
monitorEvents(object[, types])
unmonitorEvents(object[, types])
Let's see some examples.
Instead of right clicking on the body element to activate/deactivate the logging (see the first screenshot) you can type and execute following expressions into the command line. All events, just like before, will be logged in the Console panel.
unmonitorEvents(document.body);
If you want to log only specific events and avoid e.g. mousemove events check out the next example.
monitorEvents(myInput, ["keyup", "keydown", "keypress"]);
This way, only keyup, keydown and keypress events will be logged into the Console panel for the test input box available above (in the Learn & Discover Events section). You can open Firebug on this page and check it out immediately.
See also Firebug wiki for monitorEvents and unmonitorEvents API.
If you have any tips how to improve this feature let us know.
33 Comments
Honza, you should also mention monitorEvents()/unmonitorEvents(), which give more granular control over event logging.
Sebastian
Can you play back these events for automated testing type scenarios?
@Sebastian Z.: yep good point.
@DDD: Not now, but sounds like a good idea. Perhaps new Firebug extension could implement that?
[...] logs (see more about DOM event logging) are automatically linked with the target (issue [...]
How can I enable event logging as soon as the document starts loading? I'm interested in logging all events sent to the "window.document" object right from the start, including any readystatechange and the DOMContentLoaded event.
@Sergiu Dumitriu: Good point, I don't think it's currently possible, please create a new issue report http://code.google.com/p/fbug/issues/list
Honza
@Sergiu: I just did that report so, it isn't forgotten. http://code.google.com/p/fbug/issues/detail?id=5861
Honza
Thanks Jan, I've starred the issue.
Hello, I love reading through your blog, I wanted to leave a little comment to support you and wish you a good continuation. Wishing you the best of luck for all your blogging efforts.
I must say that you are pretty good at blogging and you must need to carry on with this all the time. Keep it up.
Firebug is the awesome tool for developer and code hacker because mostly we are in trouble while adding code in source file and sometime code doesn't properly work then firebug will help you out.
Pretty good post. I just stumbled upon your blog and wanted to say that i have really enjoyed reading your blog posts.
It is a pretty good post. This post contains useful information which helps us a lot. I visit your website often and share with my friends.
There's a lot to understand about media rss 1.5. We were able to provide you with some of the facts above but there is still plenty more to write about in subsequent articles.
speachless efforts done in this blog i wish to see some more intresting posts in future.
This is a very informative, impressive and creative post. It really helped me a lot. Thanks for sharing.
this addons is useful for me, there's more bugs i can find... impressive and creative...
The write-up is extremely good, like, you are extremely superb also it was seriously superb. convert pdf to epub for mac
is rather easy to see from the other comments as well that this post is well
Most notable of all is timberland boots sales devotion to customer and industry education. Whether through public facility reports, labels outlining the impact of specific products, or national conferences held to educate the retail community, cheap Timberland sale is committed to sharing their initiatives with consumers and competitors alike.
Keep up the good works guys it is highly recommended indeed for all to visit.
I do think that software is hard to produce. And I appreciate you work very much.
labels outlining the impact of specific products, or national conferences held to educate the retail
This is why you need to carry out apt research before purchasing your wholesale wedding flowers.
Full-service Starbucks (hours vary from store), books, music, electronics, DVDs, a deli, a bakery, natural foods, and a full-service
A jacket is an outerwear garment that is lighter Canada Goose Yorkville Bomber in weight than a coat. Jackets are typically hip-length or shorter, and coats may reach to the mid-thigh or longer. Canada Goose Kensington Parka Although many jackets are unisex in construction, a few have features in their design that can make them seem more masculine or feminine. Does this Canada Goose Uk Spark an idea?
Very intresting post I like ur website keep it up..!
I have get a lot of useful information and fresh knowledge in your website.
Can you play back these events for automated testing type scenarios?
I found lots of interesting information here. The post was professionally written and I feel like the author has extensive knowledge in this subject.
Your work is deserved to be appreciated hard working efforts done in your blog.
I’m impressed with your views on this matter and I agree with a lot of your ideas.