A Peek at Internet Explorer’s Developer Tools

A Peek at Internet Explorer’s Developer Tools

Tutorial Details
  • Difficulty: N/A
  • Completion Time: 30 Minutes

I hate debugging, and have never met any developer who argued otherwise. It's a drag to have to go through your code and figure out why it's broken. And most importantly, it's an admission that my code is broken and that I'm not infallible! Heresy, I say!

Seriously though, bugs are simply a natural part of the web development process, and, while we may hate them, we certainly have to deal with them. Front-end developers haven't always had rich debugging tools like other platforms and languages. In the good ‘ole days, alert() was your friend and an important method (excuse the pun) for troubleshooting code. And debugging client-side code has its own unique set of challenges because of the variety of technologies that are in play. If you think about it, debugging pages, especially dynamic ones involves so many moving parts that could affect the rendering. You have the the Document Object Model (DOM), JavaScript, CSS, network traffic, HTTP headers, and many more technologies that all work to produce a page and in many cases interact and affect each other.

Thankfully, times have changed and all the major browsers have built-in tools that greatly increase the troubleshooting features for developers. I give a lot of credit to Joe Hewitt for pushing the tools landscape forward. He created Firebug in 2006. In my opinion, it broke ground on what real browser tools should be.

alt text

Since then, we've seen Firebug evolve tremendously and serve as a baseline for others to work from and we now have powerful tools in Chrome, Internet Explorer, Safari and Opera as well.

For this article, I'm going to focus on Internet Explorer's Developer Tools and the functionality it provides. The functionality I'll discuss will be very familiar to anyone who's used a browser-based debugger but I want to bring focus to Internet Explorer's tools to ensure that there's a good understanding of what's actually available.


Where Are We?

Let me begin by admitting that I know that IE is the browser you love to hate. I get it. The fact of the matter is that it's a major browser that's important to many site visitors and that means you'll be targeting it and also need to debug code in it sooner or later. What's kind of surprising is how many developers don't know that IE ships with developer tools or worse that they think they still need to download the Internet Explorer Developer Toolbar.

The developers tools are commonly called the "F12 Developer Tools" because pressing the "F12" key on your keyboard will open them up while you're in Internet Explorer (interestingly enough, pressing F12 also launches Firebug and the Chrome Developer Tools).

alt text

The developer tools are also accessible via the "Tools" menu under the label "F12 developer tools".

alt text

The key thing I was to stress is that they're included with Internet Explorer (and have been since IE8) so there's no need to install a plugin to get dev tools. Also, while they're called the "F12 Developer Tools", for the purposes of this article, I'm going to drop the "F12" and save me some keystrokes.

The developer tools provide developers and designers with a rich set of tools that can tackle many of the common debugging and inspection use cases they'll face during their work. Capabilities like:

  • JavaScript debugging
  • DOM inspection and manipulation
  • On-the-fly updating of CSS styles and page layouts
  • Networks traffic logging
  • Script profiling

These are features that are par for the course nowadays and essential to determining what ails your pages. On top of this, the developer tools provide the ability to test your site in different versions of Internet Explorer by changing the browser mode:

alt text

Testing for multiple versions of IE has traditionally been a royal pain in the tuckus; this feature aims to lower the friction of ensuring that your sites work across the various versions of IE.

Additional capabilities include such things as:

  • Validating markup against the W3C's validation services for HTML and CSS
  • Prettyfying minified or obfuscated JavaScript code for readability
  • Color picker
  • And more…
  • There's a lot of stuff available so let's review many of the key features.

JavaScript Debugging

I focus a lot on helping developers use standards-based development techniques to ensure their sites work great on IE. As you can imagine, I spend a great deal a time analyzing code, especially JavaScript. So, in order to trace down an odd bug, I need a JS debugger that can let me analyze the code in variety of ways.

Making Code Readable

One of the most important features for me is the ability to prettify JavaScript. I don't know any developer who is not minifying their production code nowadays. And that's absolutely the right thing to do, but, when I need to debug something on a production site – especially where I don't have access to source code – being able to prettify the code is invaluable. Yes, there are online tools like JS Beautify that can do that but it would force me to copy and paste code into it in order to deobfuscate the code. Having this capability built right in saves me a ton of time. For example, say I'm looking at a minified version of jQuery:

alt text

Via the tool icon, I can access the "Format JavaScript” option which will deobfuscate the minified jQuery source code and provide me with substantially more readable code:

alt text

As you can see in the image above, the code is certainly easier to work with. The other cool thing about this feature is that once you've enabled it, it will continue to deobfuscate your JS files during your session.

One caveat is that the deobfuscation process won't revert jQuery to its original source. No service that I know of can do that but source maps will solve that problem going forward. Be sure to read the article on source maps by Sayanee Basu that I just linked to for a great intro on the topic.

Stepping Through your Code

Once the code is readable, it makes it easier to determine the flow of the source. At this point, I can set breakpoints at logical spots in the code to isolate problems as you step through it. And of course, you can set multiple breakpoints across multiple source files.

alt text

You can also specify conditional breakpoints allowing you to break the code flow based on a specific value.

alt text

As expected, you can step into, out of, or over any method you're in providing the granular control you need to check out code and also not waste valuable time. What's important to note is that as you're traversing your code, a call stack is accessible that allows you to see how you got to a specific method or JavaScript file and go back to that method or file to inspect the code:

alt text

In addition, it helps to isolate unexpected code paths that may be the problem point.

Information is key to understanding what's happening and the developer tools works to give you the options to define what you want to see. So along with the call stack, you get information about variables in the current scope via the "Locals" tab:

alt text

Or, you can define your own watch list (via the Watch tab) so you can track how variable values change dynamically based on code execution. The great thing is that the tools give you the flexibility to change the values in either list so you can see how it affects your application.

And let's not forget the Console. No debugger would be useful without a console to output errors and allow you to debug interactively:

alt text

The console will display common errors associated with your page including JavaScript and markup issues. You can also enter commands to interact with the page as well as use the console object within your JavaScript code to display messages to the console.

Evaluating Code Performance

All of the above is great and certainly valuable. An often overlooked aspect of debugging is code performance. Rarely do I talk with developers who mention how they've evaluated their code to determine bottlenecks in slow running methods, especially from third-party frameworks.

The developer tools provides you with a JavaScript profiler that will analyze your code as it's run, providing a wealth of information to use to optimize your code.

alt text

Key bits include:

  • Total # of times a function was called
  • How long the function took to run
  • How long child functions took to complete
  • Type of function (e.g.: DOM or user-defined)
  • The source file where the function is defined

Armed with this information, you can determine whether your method needs to be refactored, if a 3rd party library is causing issues or if a browser-specific method is a bottleneck. To me, the combination of Inclusive and Exclusive Time would be important metrics to evaluate because it would tell me how long a specific method took to run including the time it took child or external methods to complete. From there, I can start drilling down further to nail down the problem code.


Inspecting Network Requests

I'll never forget when I coded my first Ajax request. It was such a small bit of code but it honestly felt magical (yeah I'm weird that way). Doing dynamic DOM updates based on pulling back data from a background HTTP request was incredibly cool and a powerful capability. I'll also never forget the first time I tried to send a result back which ended up generating an error and leaving me dumbfounded. Thankfully, Firebug had a network request inspector that let me check out what my server-side code was returning and troubleshoot it.

The "Network” tab in the developer tools provides this very functionality. It shows traffic related to the page being loaded and exposes details you can use to troubleshoot network-related issues.

alt text

By looking at the traffic captured you can see the type of request being made (e.g.: a GET or POST), if it was successful and how long it took to complete. The network inspector also provides important details about the type of asset you requested (e.g.: CSS or an image) and what type of code initiated the request. This is all provided in a summary view that offers quick details about the requests.

By choosing to go into detailed view, you're able to glean granular information about a specific request. Being able to look at the response body was what allowed me to resolve the problem I mentioned before with my XHR call. But that's only a small bit of the overall data that you get by dropping into detail view. Apart from that you get the request's headers (request & response), cookies that were sent and even timing information that tells you how long the request took.

alt text

The timing display in the summary view is really important because it's a clear visual of which request are long running and might be a problem.


Making Markup Look Good

I'll be the first to say that I HATE testing for multiple versions of Internet Explorer. I'm mainly annoyed with the older versions and I'd be happy if developers could simply worry about IE9 and IE10. But it is what it is and there's a couple of ways of addressing this. You could use multiple virtual machines for each version of IE you're targeting. You could use Browserstack.com to virtualize IE versions in the browser. Or, you can use the developer tools' browser mode switching capability to have IE10 emulate IE7 through IE10.

alt text

This tool allows you to change the way that IE renders a page so that it emulates a specific version's capability, thus ensuring that your site should work for that version. Not only does it allow you to specify the browser mode (which determines feature support) but also the document mode (which specifies how a page will be interpreted). This gives you a lot of flexibility to test various versions of IE from a single browser. Just note that the IE team does their best to emulate versions. If you want full-proof testing, then VMs are the way to go. I typically start off with the last option because it's by far the easiest and the rendering is very close to actually using a specific native version of IE.

Inspecting markup is one of the most common tasks for any web professional. It's great to be able to look under the hood at how something is built without having to do a "View->Source”. The "HTML” tab in the developer tools shows all of the elements on a specific page along with their related styles and attributes. This allows you to inspect and update values in real-time and get immediate feedback. You can click on, say, a paragraph element and it becomes editable so you can change the text and see the results immediately. The same applies to the styles and attributes of that element.

alt text

Attributes can also be added inline by right-mouse clicking an element and choosing "Add attribute” from the context menu or by selecting the "Attributes” tab and adding it to the list. The following image shows how I added a color and font attribute to the emphasis element, displaying them as inline styles in the markup and individual attribute lines in the Attributes tab:

alt text

The page's markup is represented in a treeview-style so you're seeing a top-down view of the DOM tree and are able to expand elements to see their children.

CSS also has its own tab, however, it's meant to manage global styles typically stored in stylesheets. Selecting a stylesheet shows all of the selectors, rules and properties defined and allows you to tweak them as you please. In this case, simply unchecking the text-align property dynamically shifted the text to the left:

alt text

It's not only editing existing rules. You can also add new selectors, rules or properties:

alt text

More than a Plugin for IE6

The primary reason why I wanted to write this piece is because I was genuinely surprised by how many developers I've met, who had a misconception about the F12 Developer Tools – or didn't know that they even existed! My hope is that it helps developers get a feel for what's available and makes their troubleshooting a little easier.

I also hope that it generates feedback for future features that developers need. While the existing functionality is good, I'm sure there are a number of new things that you, the readers, would find essential to your debugging experience. Let me know what those are!

Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • arnold

    I work on intranet websites, mostly we only work for IE7 and above,
    I can say the Developer Toolbar is quite helpful ,
    thanks for the article because some things are new to me.

    btw guys , if developer toolbar isnt installed on your XP machine
    try downloading this -> http://www.microsoft.com/en-us/download/details.aspx?id=18359

    If your more familiar with using Firebug, I can suggest that you can use firebuglite in IE ,
    https://getfirebug.com/firebuglite , right click the link and add it as ‘favorites’ then put it in
    favorites bar.

    • http://twitter.com/disule Dan Warfel

      Yes, Firebug Lite is the way to go. This was a nice tutorial though, and a good reference now. On a different note: I think Microsoft should stop making IE altogether (I think it operates at a loss) & instead have Opera be the default. That would boost their street cred in the developer world. And it would work nicely w/ Windows Mobile, Surface Devices, & Xbox 360 since Opera is well-versed in mobile devices & gaming platforms.

      • Nicklas

        Why Opera? Just curious! I do agree that they should stop IE development and have another browser by default, but i’m curious as to why you think Opera is the best alternative.

      • http://twitter.com/jonathansampson Jonathan Sampson

        Imagine if people said in the late 90′s “stop developing other browsers… Internet Explorer by default.” We would all have no problems with Internet Explorer, because our development-patterns would be catered to that one browser. But this would be devastating to moving the web forward; as we’ve seen in the last 10+ years having a collection of browsers all working to become better and better causes the overall quality of the web to move forward as incredible speeds. Microsoft should continue to develop Internet Explorer, as should Chrome, Firefox, Opera, Safari and Maxthon – the more the merrier!

  • pixelBender67

    Nice to see IE playing ball with the rest of the boys :)

    • http://twitter.com/reybango Rey Bango

      The IE team is trying.

      • http://profiles.google.com/robert.koritnik Robert Koritnik

        but most of the time just failing… It’s like football team with rich owners that keeps them playing because they can afford it. And IE is the same.

      • http://twitter.com/reybango Rey Bango

        Sorry I don’t agree. IE9 and IE10 are solid browsers.

      • http://jitendravyas.com/ Jitendra Vyas

        IE10 is good but IE9 is not. but yes if we see IE7 and 8 , IE9 is good

      • pixelBender67

        lol sure, hey man I like your blog keep it up :)

      • pixelBender67

        I have to disagree too, I mean you have to give credit where credit is due, don’t be a follower, just because everyone rags on MS doesn’t mean you have to. MS has come a long way, I hated their stuff for years, Silverlight, IIS, etc the new VS 2012 is amazing, NET MVC amazing, you have to open your mind and give credit where credit is due, doesn’t mean you have to like it. I hate rap, but when I hear a good rap song I have to give them credit for producing a great sound, even though I personally don’t like it

  • Ryan Jan Borja

    Too bad I’m using Linux.

    • http://twitter.com/reybango Rey Bango

      I hear ya Ryan. How do you test IE? VMs?

      • Ryan Jan Borja

        I switch to Windows and test. Now that there’s developer tools in IE, will try it soon. Will use chrome dev tools for now. :)

  • http://www.wordpressguru.com.au/ Wordpress Developer Sydney

    At least IE is trying …

  • messi fan
    • ebin

      true

    • http://twitter.com/jeff_pz_cr Jeffrey Briceno

      Pour little monster is victim of bulling

    • http://twitter.com/jonathansampson Jonathan Sampson

      Depends on what you’re focusing on; Chrome, Firefox, and Opera are all just as broken in their own special ways. Have you tried animating pseudo-elements in Chrome? It’s been broken for over 4 years. Meanwhile, it works perfectly in Internet Explorer 10.

      Your image would be more accurate if it showed Developers stomping the living daylights out of Internet Explorer 5.5, 6, and 7. Heck, it wouldn’t be a stretch to include Microsoft in the group of attackers against old IE – they themselves want it to die.

      “Internet Explorer” is more than just old browsers – it’s the new living browser of the web today, version 10. And it is, in many ways, superior to the competition. Overall, Microsoft’s latest browser (which auto-updates, thank goodness!) is just as good as the competition, and gives Google and the Mozilla foundation some real competition.

      • drhowarddrfine

        You’ve never developed for the web, have you.

      • jonathansampson

        I have, for well over a decade now. I, like most developers at the time, enjoyed IE in the 90′s. I then abandoned it for Firefox when add-ons became a “thing”, and then jumped ship to Chrome when it released. Fast-forward a bit more to the rewrite of Internet Explorer at version 8, and the adoption of CSS3/HTML5 beginning in IE9 – I began looking at it more seriously. Today, after having used Internet Explorer 10 for over a year, I am entirely convinced that the old IE we have all come to hate (for reasons beyond its control, min you) is dead and gone and the new Internet Explorer is a game-changer for Microsoft.

      • drhowarddrfine

        See my other post. IE is only for people who are forced to use it or don’t know any better.

      • http://twitter.com/aksheyjawa Akshey Jawa

        @jonathansampson:disqus friend, IE might have some advantages over other browsers but for developers it is really difficult to debug their code in IE. I have not tried IE10 but developer tools in IE9 are much poorer than chrome developer tools and firebug.

      • jonathansampson

        The tools in Internet Explorer do leave much to be desired, but as far as the browser itself goes (not the integrated tooling), it’s top-notch and performs as good as its competition. Yet again, yesterday, I came across another issue where CSS3 properties worked better in IE10 than Chrome.

        I find that when you code to standards, use a standards doctype, practice safe habits like progressive enhancement and feature-detection, there is almost no extra debugging needed in modern versions of Internet Explorer.

        I hope you get a chance to play with Internet Explorer 10 soon; it’s really a phenomenal leap forward for the software giant.

  • Brock Nunn

    I just wish there was a “right click on element – inspect that very element” function for inspecting CSS and plain ol HTML

    • http://twitter.com/jonathansampson Jonathan Sampson

      You almost have that in Internet Explorer; press F12 and then locate the Mouse Cursor icon at the top-left of the Developer Tools. Clicking this icon turns your actual mouse into a seek and explore tool, meaning you can now click on any element on the page to see its markup and styles.

      • bigaloo

        But all that clicking is an annoyance…

  • kris

    how to change css in IE9 dev tool ?

    in firebug ++ — simply make one pixel less or more. If you do same in Ie you need to wait for 6 second for every down arrow key. simply IE is time wasting dev tool. run very slow and almost hang if you tried to debug big site.

    • http://twitter.com/jonathansampson Jonathan Sampson

      Not sure what is causing those performance issues; I was able to change the dimensions of an element pretty easily. Do you get the perf-hits when you change dimensions using the Layout tab instead?

      • kris

        nope,

        I have show-off same issue to many people. all call IE dumb after my presentation that how silly IE was (will be in future).

        suppose open a NEWS (that is heavy because of content) site. now you have width 200px somewhere now come to 200px and put up arrow key and down key.

        After you message I have tried it in IE9 it’s fine but sometime it’s break. Crash if you tried on big site. for me when we with someone debug the same site in IE9 it’s hang. the second person have same problem as I have so we are sure about something we trouble in IE9.

        I prefer to go with Firebug lite in IE instead of IE-dev tool. only script panel in IE9 dev tool is something I like.

  • http://www.andredublin.com/ Andre Dublin

    a right click to inspect element would be awesome

    • http://twitter.com/jonathansampson Jonathan Sampson

      If you’re focus is already in the Developer Tools, pressing Ctrl + B will enable your mouse to click-inspect any element on the page.

  • http://www.simple-webdesign.com/ Simple

    I don’t know, maybe it’s because I am so use to Firebug, but working with Dev Tools in IE is such a pain in the….. For example, adding new attributes is great, but like you said, it adds them inline and only for that element and not for all the elements with the same class, or the fact that there is no auto complete for the value of the attribute (you have to write the whole word for display: block for example, or else it will not add it) to speed things up a little bit.

    But still, bad or not, the dev tools from IE is the best thing that it has and so, making a website more prettier and bug free in IE is a little bit easier now.

  • qlayer

    You can use visual studio to debug JavaScript in IE.

    • http://profiles.google.com/robert.koritnik Robert Koritnik

      Right! You can use other browsers to browse the web as well…

      • qlayer

        You should choose your tools wisely. If you need to debug on ie it is better to use visual studio.

  • Umer

    what ever but i hate IE.

    • http://twitter.com/jonathansampson Jonathan Sampson

      I suspect you hate “old IE,” being that Internet Explorer 10 is nothing like its predecessors. Internet Explorer 10 is more similar to Chrome in many ways than it is to old IE.

      • Sumrit

        Similar to chrome ??

        What aspect ???

        F^%#*^G microsofters can never catch AWESOME googlers.

        IE should go to hell ??

        jonathansampson i suspect you were in HIBERNATION for a decade.

      • http://www.facebook.com/jcreamer898 Jonathan Creamer

        IE10 adheres to many of the new specs for HTML5 and ECMAscript. Get in there and try it out and you’ll be pretty surprised. Not to mention it has syncing between all Windows 8 devices, these dev tools that Rey mentioned, the list goes on…

      • drhowarddrfine

        Been there. Done that. You’re wrong. IE10 is still the worst browser on the planet. Inept and incompetent, no one should use IE10.

      • jonathansampson

        Really? So how is it the “worst browser on the planet” handles pseudo-element animation better than Chrome? How is it the “worst browser on the planet” handles linear-gradients better than Chrome? How is it the “worst browser on the planet” handles initial rendering of animated properties better than Chrome? You and I must have radically different definitions of “worst”, because Internet Explorer 10 is looking pretty good compared to the competition.

        I understand your pain, I really do – we’ve all been burned by the longevity of life that old IE has experienced But Internet Explorer 9 and 10 are entirely unlike their predecessors, as is immediately evident in a cursory usage of them. As I said before, Internet Explorer 10 is more similar to Chrome and Firefox in behavior and support than it is to its old IE predecessors.

      • drhowarddrfine

        I’ll let you read these cause I’m busy right now:
        http://html5test.com/
        http://css3test.com/

        And that’s just HTML and CSS. Haven’t gotten into the API part yet but then there’s caniuse.com for that.

        You can cherry pick all you want but the big picture shows IE10 is still years behind every other browser in modern standards and practices and there it will sit for at least a year more.

      • jonathansampson

        Tests that look for non-standard support and APIs don’t determine superiority. If it did I could point to a mountain of features that have existed in Internet Explorer for over a decade that can’t be found in Chrome or Firefox. I could even develop feature tests around those features and award a number to show “support”. In the end, if I’m testing for non-standard things, my test doesn’t mean a whole lot.

        Chrome is better than Internet Explorer in developer tools, and Internet Explorer is better than Chrome in its rendering of many CSS effects. All of that aside, we don’t automatically award the gold to Chrome for its support of WebGL, and we don’t automatically support Internet Explorer for their support of a superior pointer model.

        No cherry-picking; I’m a developer speaking his mind. Internet Explorer may be behind the pack in some respects, but its leading in others. Again, it’s superior to Chrome in its rendering of CSS3 effects; It’s superior to Chrome in its ability to animate pseudo-elements; It’s superior to Chrome in its ability to avoid animation initial styles of elements when the document loads – I could go on and on.

        We’re fortunate to have a handful of great browsers all competing with one another. Let’s remain open and honest and grant praise where it’s due – Internet Explorer is entirely different from old Internet Explorer.

      • Sumrit

        Non standard support is what makes them standard.

      • drhowarddrfine

        Please don’t make me look for all those sites where Microsoft purports to show IE as a superior browser by showing the limited tests it passes and MS wrote for itself. And even if it were true that IE could render something better than the other browsers, not being able to handle the CSS at all is more significant.

        And what non-standard things are you talking about? You mean things every other browser supports and is in the CSS3 working draft but IE doesn’t support it? Probably.

        While IE10s performance on the tests I posted is miserable, I’m sure Microsoft would be tooting the horn if it did pass it. But it doesn’t so, as I said, they create their own test page that eliminates the things it doesn’t pass.

      • http://www.facebook.com/profile.php?id=681259174 James Snell

        Chrome is the new IE4.
        Nonstandard features – check.
        Sites which fail if the nonstandard features aren’t there – check.
        Browser made by a company in need a severe slapdown from the EU for abusing their monopoly position – check.
        Used absolutely everywhere – check.

        Just as desktops replaced centralised processing and the centralised processing in the cloud is making desktops moot. Some of us have been round this block before… Meet the new boss, Same as the old boss.

  • http://www.facebook.com/dominicwatson Dominic Watson

    IE dev tools are so damn slow it’s so painful to do anything in them.

    • kris

      I feel same. better to use Firebug lite. Ie9 dev tool itself native can’t comptete with plugged-in Firebug lite. totally shame for M$ft. what they have made in Ie9. only ads look fantastic.

  • borantula

    until they have the mandatory updates like chrome they will continue to be outdated. IE10 will be old someday because some IT department in a big company you work with prevents updates for years. Thats why I still deal with IE7 for some works.

    They tried to be humorous then saying “browser you love to hate” but they don’t realize what an inhumane thing to make someone love to hate something.

    I pity for the hours of the countless developers that spent on fixing for IE.

    • Nicklas

      Yes. YES. Why don’t they just make it auto-update? That would make things so much easier.

      • borantula

        and I also think its a shame for microsoft that another company (google) makes a product (chrome frame) to cover your bad.

      • http://twitter.com/jonathansampson Jonathan Sampson

        Actually, Internet Explorer 10 is structured for auto-updates. Click the gear-icon, and then ‘About Internet Explorer’ to see; it comes with auto-updates enabled by default.

        Chrome doesn’t suffer from the types of issues that plague oldIE because Chrome didn’t reach world-domination back in the 90′s, when it wasn’t really feasible to do auto-updates. Recall that we weren’t always online back in those days, and when we were, we didn’t have much bandwidth to waste on applications auto-updating themselves.

        Microsoft pushed out system-updates that upgraded people’s browsers not too long ago; XP users were forced up to IE8, Vista users to up IE9, and Windows 7 users can now enjoy Internet Explorer 10.

    • pixelBender67

      why do they not get paid to make things work in IE6 and 7 and 8? stop talking out you (__|__)

      • Mikehenken

        In some industries/niches, a large amount of the websites users are using outdated software (eg: IE) on outdated hardware (ex: low resolution). In these cases, the developers should be (and almost always are) paid for the extra work involved in making the site/application work non older software. While this might be annoying, I do not see how it could be avoided. If it wasn’t IE6-8, another equally or comparatively frustrating browser would exist for you to practice your backwards compatibility.

      • pixelBender67

        and tell me something I don’t know? what do you think I just crawled out from under a rock?
        come dude read the comments

      • Mikehenken

        My comment was in reply to borantula . I am not sure why disqus placed it under your comment.

      • pixelBender67

        cheers

      • pixelBender67

        sorry I don’t mean to come off like that, I just get ticked off when people assume things

    • Mikehenken

      In some industries/niches, a large amount of the websites users are using outdated software (eg: IE) on outdated hardware (ex: low resolution). In these cases, the developers should be (and almost always are) paid for the extra work involved in making the site/application work non older software. While this might be annoying, I do not see how it could be avoided. If it wasn’t IE6-8, another equally or comparatively frustrating browser would exist for you to practice your backwards compatibility.

  • http://croftmedia.co.uk/ Greg Tyler

    What infuriates me about IE Dev Tools is that running console.log({bool:true,prop:’string’}); will just return “[object Object]“; it doesn’t let you inspect the properties of the object. It makes debugging things like JSON take forever.

    • http://eichefam.net Paul

      This. A thousand times, this!

      • http://twitter.com/jonathansampson Jonathan Sampson

        It’s definitely an inconvenience. You can stringify the object instead:

        console.log( JSON.stringify( { bool: true, prop: 'string' } ) );

        This, although slightly more verbose, gives you a consistent cross-browser experience. I suppose you could even do a feature-detection and “fix” the .toString method of the object prototype:

        Object.prototype.toString = function () {
        return JSON.stringify(this);
        };

        With this, you no longer receive “[object Object]” when you log an object, but instead you receive the output you would expect – the contents of the object.

      • http://croftmedia.co.uk/ Greg Tyler

        Excellent point. There’s still an irritation when dealing with large amounts of JSON data, because you can’t expand/collapse each sub-object/sub-array, but that certainly helps with a helluva lot of JSON tests. Thanks!

      • http://twitter.com/jon_neal Jonathan Neal

        1. I would hesitate to call it a “cross browser” solution if we are explicitly targeting a deficiency in IE10.

        2. I would not overwrite overwrite the prototype of all objects in the entire global space just so that IE10 consoles better. You might also break many getType functions in other libraries.

      • jonathansampson

        You’re absolutely correct, Jonathan; it’s best to not overwrite the implementation of prototype methods in this case. That being said, this solution isn’t explicitly targeting anybody or anything – it merely was provided in the context of discussing the behavior of one particular browser; that doesn’t mean there won’t be another browser along the way that suffers the same issue.

  • The2

    In comparison with Firebug or webkit tools this is not enough for serious JS development. The forst part of it is reading/listing ajax requests. Actually from my experience, it’s good only for detecting IE specific problems. My pick is Firebug for CSS/HTML and webkit for JS. Too bad Firebug is getting slower with every version..

    • http://twitter.com/jonathansampson Jonathan Sampson

      I’m not sure what you mean; I use Internet Explorer for “serious JS development,” and I’m quite happy. Granted, it’s one tool in my toolbox; for JavaScript development I typically use both Chrome and Internet Explorer side-by-side, complimenting one-another. I like Chrome since I can inspect the attached events on elements, and Internet Explorer since individual statements (as opposed to entire lines) are highlighted when stepping through code.

  • http://profiles.google.com/robert.koritnik Robert Koritnik

    It’s not a problem of IE being completely bad. 10 seems to be alright. But the MAIN problem is it doesn’t update so there’re still too many users on IE7 and so many WinXP users that can’t get past IE8 even if they wanted to. And that’s bad. VERY BAD! And corporations sticking to it…

    • http://twitter.com/jonathansampson Jonathan Sampson

      You identified the problem; machines incapable of updating. This could be due to an invalid (or illegally obtained) copy of Windows xp, stiff-necked IT departments not wanting to upgrade company-software, corporate-dependency on Internet Explore 6/7, and various others reasons.

      Microsoft isn’t to blame here though; they’ve done everything conceivable to help move the web forward. Old non-updating static instances of Internet Explorer are the natural result of Microsoft dominating the web back in the 90′s.

      Remember, we didn’t have a lot of connectivity, and when we did, we didn’t have the bandwidth to afford any software auto-updating itself in the background. I recall getting 2.5 k a second back in those days – I can’t imagine losing half (or more) of that to my browser trying to update itself, only to fail when I drop offline because my brother picked up the phone downstairs.

      Microsoft auto-updated as many machines as they could through system-updates not too long back. Windows xp users were pushed up to Internet Explorer 8, Vista users up to Internet Explorer 9, and today Windows 7 users can download and run Internet Explorer 10.

      • Greg

        Yeah, but IE still sucks, because of IE7 and IE8.

        Ok, i get that IE7 can be updated to IE8 on WinXP. Anyway, IE8 is bad browser. I’m front-end developer, and i still have to take care about things which won’t work on that browshit… i mean browser… There’s a lot of often used CSS3 features, like border-radius, box-shadow, etc. But customers can’t understand that IE8 can’t render this things… And I have to doing a lot of shitty fixes, to provide comparable template view…

        And argument, that IE10 is better, isn’t good and enough for me. Ok, cool that Microsoft improves this browser, but it’ll be nice to update this little things that pissed of a lot of front-end developers ;-)

        Btw. I’m not quite sure, that you know this fact. But Firefox 3.6 (released in 2010) have better CSS3 support than IE9 (released in 2011) ;-)

  • http://twitter.com/vincentaudy vince

    the developer tool look like an old windows 3.11 form..

    • michiel

      Agreed. Plain ugly!

      • http://twitter.com/jonathansampson Jonathan Sampson

        That is one thing that Chrome excels in; their tools are very attractive, and high-configurable aesthetically. You can create your own custom stylesheet to modify the presentation of the developer tools – I love that.

  • http://twitter.com/jeff_pz_cr Jeffrey Briceno

    for me, the only useful tool is to see how it will look inferior versions of IE, but I do not care if a user comes to my site with IE6 I say to change that pathetic for something better browser like Firefox or Chrome.

  • adardesign

    Why does the IE team start spending millions on marketing their IE? If its so good then it will be accepted and used. Perhaps they should utilize their funds to compensate the web developers who spent 1000′s of hours debugging IE.

    • http://twitter.com/jonathansampson Jonathan Sampson

      Every browser vendor spends money on marketing; have you not seen the emotional commercials for Chrome, or spent days watching the webcams of cuddly “firefoxes” on the Mozilla website? And as for debugging, Internet Explorer today is really solid; the only excessive debugging I’ve seen is the result of people not coding to standards, and not using reliable practices like progressive-enhancement, feature-detection, and more. Write code like you ought, and Internet Explorer can be a great buddy.

  • Div

    What website is that on Hydraulic Fracturing pictured in some of the screenshots?

  • Guest

    With all the money M$ has , the inability to come with the best dev tools and the best browser says a lot about M$ priorities. FrontEnd developpers are not. Allow businesses to install IE9 on XP instead of trying to sell them new crappy os,and maybe people will change their opinion about M$ products.

  • Colors <3

    TL;DR: IEs web developer tools sucks. Use firebug or chrome.

  • pixelBender67

    lol man some of you guys that are hating on MS is amazing, I mean yeah IE 6 -8 sucked but 9 & 10 are up to date, what’s the problem? Not my favorite browsers but hey at least they are standardized. and quit frankly it meant more money to make things work in those browsers so job security right there..

    • pixelBender67

      Not to mention MS gave us AJAX , or did you guys not know that? whatever haters are going to hate

  • http://twitter.com/WouterJNL Wouter J

    It is so sadly that you get only negative comments, because it is placed in IE. It seems like screaming bad things about IE is the nicest thing in the world… Please people, IE uses another releasing strategy than Chrome and firefox, but do you love the chrome and ff release circles? I don’t, within a year we have gone from ff3.6 to ff15(?).

    IE only releases a new version when they have everything stable, they don’t include thousands of vendor prefixes, they just get it right.

    So please, don’t just scream but spend some time in finding out why you hate IE, most of the arguments are just not true nowadays. And if you write correct CSS and HTML, you don´t get problems with IE. I never ever needed to spend time in debugging in IE, it always works the first time (except from ‘on the edge’ things, but that is just as expected)

  • thanyawzinmin

    Just a kind of improvements to IE10 . Also they made this http://www.modern.ie .

  • http://www.facebook.com/Jakowicz Simon Jakowicz

    IE Needs an inspect element option on right click and a cleaner/more intuitive toolset for editing CSS. Seems like their dev tools have a mind of their own sometimes.

    • http://twitter.com/jonathansampson Jonathan Sampson

      I’d love to see cleaner tools for sure. Regarding inspect-element, if you’re in the Developer Tools already you can press Ctrl + B which turns your mouse into a click-inspect element explorer. After the key-combo, you’ll be able to click on any element in the document to explore its markup, and styling.

  • Ian Simmons

    Good info here. Though I’m a Chrome convert myself and only use IE Dev tools to check version compatibility, it’s good to know what else is available

    Thanks for the article

  • http://twitter.com/thomashenson81 Thomas Henson

    As a .NET developer I’m very excited. This is going to be awesome

  • http://www.facebook.com/profile.php?id=634985215 Steven Daoud

    It’s unfortunate that you’ve forgotten to mention how incredibly awful IE developer tools are in comparison to Firebug. CSS rendering is not instantaneous and the user experience of these tools are downright garbage. Firebug lite is endlessly more valuable.

    • jonathansampson

      Steven, I just opened up Internet Explorer 10 to see if your statement regarding CSS modifications via the F12 Developer Tools was correct and found that it was not. From what I could tell, the changes were indeed instant. Am I missing something?

  • Surmit

    Haha. Made me laugh…..
    IE for developers,
    Everything in IE is a blackhole.

  • briandukes

    Rey, it’s definitely nice to have these when you need to troubleshoot an IE issue. But, they’re undeniably clunky when compared to Firebug or Chrome Dev Tools. Using them, it sure seems like the IE team is okay with mediocrity in this area (or that no one on the team actually uses the tools). Is there anywhere that we can provide feedback, with a hope of there being actual improvements in IE 11? Will the IE team hear the comments below (right click, inspect element; console.log of objects; CSS changes are slow and/or confusing)?

  • http://www.customtoolbardevelopment.com/ Leon Victor

    Yup, I have used IE9 and there was poor experience. It becomes very difficult for debugging code in IE. Rather than Chrome developer tools and firebug are very wealthy and strong.

  • Leon Victor

    IE is among the best web browsers and provides enormous toolbars to assist web developers and designers. Chrome, Firefox and opera also have their own developers toolbar which are also commendable.

  • http://rileykelly.weebly.com/1/post/2013/05/the-latest-net-development-framework-45-was-released-with-visual-studio-2012.html Talon Giles

    This is something innovative information you are posted in this blog.Because i really dont know that internet explorer user can do programming in it.

  • Chris

    Its great to see and use the developer tools in IE – however what bugs me is that when viewing the styles they are listed in inherited from the outer elements first. html / body etc. If I click on an element to inspect it chances are I wanted to ‘inspect’ something about that element and the styles applied to it is probably one of those things. With IE I have to scroll all the way down through all the inherited styles to then find the ones specific to the element I clicked on…
    Seams logical to have the selected element styles first (like other developed tools do) and then have the inherited styles further down.

    This is what really irritates me about IE, seams there’s a bunch of people developing tools for IE thinking,,, how can we f**k this up in the most simple way and not use ‘common sense…!’ Oh I’ve got a great idea how about we…..

    However, if there’s an option / setting I’ve missed out on here to sort the styles I’ll gladly eat my words…! :)