Click here to Skip to main content
15,880,796 members
Articles / Programming Languages / Javascript

Internet Explorer 8 for Developers

Rate me:
Please Sign up or sign in to vote.
1.89/5 (7 votes)
4 Nov 2009Ms-PL11 min read 31.6K   7   6
An overview of the IE 8 feature set

Introduction

Since its release in March 2009, Microsoft Internet Explorer 8 has made it easier than ever before for you to build and maintain sites that reach and maintain contact with your customers. Built-in developer tools make it efficient and easy to develop and debug your site.  New extensibility capabilities let you differentiate your site and keep customers coming back.

  • Create rich sticky experiences
  • True and accurate standards support. Code once. Run everywhere
  • Great tooling support right out of the box

In this paper, we will take a look at the enhanced Internet Explorer 8 feature set, compatibility with previous versions and some topics relevant to developers.

Enhancements in IE8

User Features at a Glance

CategoryFeatureDescription
PerformanceAcceleratorsHelp you quickly perform your everyday browsing tasks without navigating to other websites to get things done.
Search suggestionsNew search capabilities in Internet Explorer 8 will offer relevant suggestions as you type words into the search box to help save time.
Visual suggestionsSearch box has been updated to enable search providers to provide a “visual search”.
Find On PageRedesigned Find On Page toolbar, The toolbar is integrated below the tab row, so that it does not obscure any content on the page.
Address BarNew address bar will drop down with an Intellisense-like list of suggestions from the user’s history & favorites.
FasterFaster startup, faster loading, faster rendering, faster script engine.
Ease of UseWeb SlicesKeep up with frequently updated sites directly from the new Favorites Bar. If a Web Slice is available on a page, a green Web Slices icon will appear in the Command Bar.
Compatibility ViewInternet Explorer 8 is a new release and some websites may not yet be ready for the new browser. Click the Compatibility View toolbar button to display the website as viewed in Internet Explorer.
Enhanced tabbed browsingWhen one tab is opened from another, the new tab is placed next to the originating tab and color coded.
Improved favorites and history managementYou can save Favorites, RSS Feeds, and Web Slices to the Favorites Bar that appears across the top of the browser.
Improved favorites and history managementYou can save Favorites, RSS Feeds, and Web Slices to the Favorites Bar that appears across the top of the browser.
Redesigned New Tab pageThe New Tab page loads quickly and provided links make it easier to get started on your next browsing activity.
Improved ZoomAdaptive Page Zoom improves upon traditional zoom-in/zoom-out functionality in the browser by intelligently relaying out the page content and eliminating the need to scroll left and right.
A better back buttonNow when you hit the back button, more pages will behave the way you expect.
SafetyStay Safer OnlineHelps protect you from today's threats, including malware and phishing, as well as emerging threats that can compromise your computer without your knowledge.
SmartScreen

Set of technologies designed to help protect users from a malicious website by blocking either the entire site or the dangerous content.

The SmartScreen Filter provides protection for:

  • Phishing Attacks
  • Socially Engineered Malware Attacks
  • Cross Site Scripting Attacks
    • Includes out of the box, on by default, a cross-site scripting filter that can detect these types of attacks and disable harmful scripts.
  • ClickJacking Attacks
    • Allows website developers to protect their sites from these kinds of attacks by preventing their legitimate pages from being "framed."
Domain highlightingHighlighting the domain name in the address bar in black, and the remainder of the URL string in gray.
Data Execution Prevention (DEP)Prevent damage to your computer from viruses and other security threats by preventing certain types of code from writing to executable memory space.
InPrivate BrowsingPrevent your browsing history, temporary Internet files, form data, cookies, and usernames and passwords from being retained by the browser.
InPrivate FilteringProvides users an added level of control and choice about the information that third party websites can potentially use to track browsing activity.
Enhanced delete browsing historyNow when deleting browsing history, you can choose to preserve cookies and temporary Internet files for sites in your Favorites folder.
Automatic crash recoveryIf a website or add-on causes a tab to crash in Internet Explorer 8, only that tab is affected.

Being Compatible with Compatibility

When Internet Explorer 6 was released in 2001, it was considered a state of the art web browser that was more standards compliant than it's competition at the time.  It gained widespread acceptance as the most used browser in the marketplace. Since then the browser market has changed drastically, and Internet Explorer 6 is barely considered a modern browser.  While usage share of Internet Explorer 6 has dropped significantly, it is still used, and developers still have to work with it's many intricacies.  In the resulting years since Internet Explorer 6 has been released, the browser vendors have evolved with standards and created more and more compliant browsers.

IE7 was released in 2006 and contained some highly anticipated features that enhanced the user experience, such as tabbed browsing, but also enhancements to better support web standards.

However, it wasn’t until the release of Internet Explorer 8, in which one of the major focuses was on a much stricter compliance with web standards, that it became fully compliant with the Cascading Style Sheets (CSS), Level 2 Revision 1 (CSS2.1) specification and now supports some features of CSS, Level 3 (CSS3).

Internet Explorer 8 Compatibility Features

Internet Explorer 8 introduced a new concept in web compatibility.  Rather than forcing developers to update their sites with each new release of a browser, that fixed rendering or layout issues, Microsoft offered developers a way to choose from a known set of rendering engines.  Internet Explorer 8 can render sites with it's new rendering engine, or they can choose from the Internet Explorer 7 rendering engine, and finally the Quirks mode engine.

Using this method, developers only need add a simple META tag to their page, or set the flag via an HTTP response header.

By default, Internet Explorer will always use the latest version of the rendering engine, and will only use one of the less standards compliant engines if it is told to by the user, the developer or by Microsoft.

As a web site developer, you can choose a method by which you ensure the compatibility and continued rendering of your site in the IE8 environment:

RankingChoiceDescription
Default ChoiceNo choice by user, developer or Microsoft
  • Internet Explorer 8 uses the Internet Explorer 8 rendering engine
Less PreferableUser choice
  • If the site fails to render as expected, the user can choose to click the "Compatibility View" button that forces Internet Explorer to use the Internet Explorer 7 rendering engine
  • This requires the user to know and understand the site is broken because of rendering issues
Less PreferredMicrosoft Compatibility View List
  • Certain top sites world wide have been included on the Microsoft Compatibility View List and Internet Explorer renders those pages in Internet Explorer 7 mode 
  • Site owners can override this by using the X-UA-Compatible switch and can get off the list by contacting Microsoft
  • You can see sites on the Compatibilty View List by viewing the page res://iecompat.dll/iecompatdata.xml in your Internet Explorer 8 
PreferredX-UA-Compatible
  • Declare explicitly via the meta tag which rendering engine to use

Best Practices for Compatibility Moving Forward

  1. Use the <meta> tag content attribute:
  2. <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
  3. Use IE=EmulateIE7 for legacy and old websites
  4. Use IE=EmulateIE8 for new and actively maintained websites
  5. Test your site on Internet Explorer 8, 7, and 6
  6. Identify site elements that may not work the same in IE8, even with the compatibility tag
    • XSS (Cross Site Scripting) Filter– prevents JScript from executing. The XSS Filter operates as an IE8 component with visibility into all requests / responses flowing through the browser. When the filter discovers likely XSS in a cross-site request, it identifies and neuters the attack if it is replayed in the server’s response. Users are not presented with questions they are unable to answer – IE simply blocks the malicious script from executing.
    • JSON function calls
    • DEP/NX option – Data Execution Prevention (DEP) or No-Execute (NX) prevents code from running in non-executable memory. This protection applies to both Internet Explorer and the add-ons it loads. With DEP/NX the Windows Kernel monitors a program's execution. If the Kernel detects an attempt to run code from a memory page that is not marked executable, the Kernel halts execution of the program, resulting in a "crash." This is a security measure to help ensure that memory-related vulnerabilities (for example, buffer overflows) in the application cannot be exploited in order to execute arbitrary code.
    • ACT (Application Compatibility Toolkit) helps customers understand their application compatibility situation by helping identify which applications are compatible with Vista, IE7, and IE8 and which require further testing. ACT allows compatibility data to be uploaded from individual machines to a central location for analysis, grouping and reporting. Once an issue has been identified, help will be available on how to resolve a particular issue or create a workaround. Furthermore, partners and customers using ACT are able to post comments to the Online Application Community, where they can share data and information about application compatibility testing.
  7. The IE components of ACT are:
    • Internet Explorer Compatibility Test Tool (IECTT). The IECTT helps identify your Web-based issues, shows your results in real time, and allows you to upload and view the data in the Application Compatibility Manager (ACM), a part of the ACT toolkit. As you test your application or site, the IECTT records events in real time when compatibility issues occur. For instance, if one of your sites injects JavaScript to another site and the IE8 Cross-site scripting (XSS) filter detects this as a reflection attack, a Cross-Site Scripting Filter event would be logged in the IECTT UI.
    • Internet Explorer Compatibility Evaluators (IECE). The IECE can be deployed within an enterprise and will help identify Web-based issues in the background. As you test your application or site, the IECE records events in the background as they occur. You will be able to view the logged events in the ACM after you upload them.

Overall, these tools help customers lower their costs for application compatibility testing, prioritize their applications, and deploy Internet Explorer more quickly.

Just for the Developer

CategoryFeatureDescription
InterfaceAdd On ManagerSingle management interface for all ActiveX controls, toolbars, search providers, email providers, etc.
PlatformTabbed IsolationA crash in one tab does not crash other tabs or browser instance.
PerformanceConnection Limits Increase
  • Broadband: 6
  • Modem: 2
  • Configurable via API’s
Page LoadsPage will continue to load even if script load fails in pre-parser.
Jscript
  • DOM object look-ups are much faster
  • Circular referenced objects are garbage collected
  • Faster native JScript operations
    • Function call performance
    • String methods
    • Array methods
    • Read, write, and deleted Object methods
    • Garbage collection algorithm
    • Communication layer between DOM and JScript
DOMMutable DOM Prototypes
  • Add new methods
  • Add new properties
  • Override default built-in behavior for methods
  • Override default built-in behavior for properties
Methods
  • hasAttribute(“attrName”) (on Element)
    • Supports “unspecified” attributes
    • Case comparisons for HTML are case-insensitive
    • Getters/setters behave consistently (return strings)
  • ownerElement, contentDocument, and more
  • getElementById() no longer includes ‘name’d elements
  • Dynamic radio buttons and checkboxes now work properly
  • getAttribute(for/style/class/[boolean]) fixed
  • Boolean attributes properly returned
  • HTML collections fixed
  • Operation Aborted parsing error relegated to script error
  • DataURI
SelectorsQuery the element tree using CSS selectors, either on the entire document or on specific element sub-tree.
Data TransferNative JSON Support
  • Faster JSON access
  • Uses JSON2 nomenclature
  • 3rd party code no longer needed
Data Storage (Local)W3C HTML5 local storeTwo different stores, one that is shared across sessions (including tabs), and one that is unique to a session.
Data SharingXDomainRequestUsed to transfer data between domains in different documents within the browser.
Developer ToolsDebugging Environment
  • JavaScript debugger
    • Set break points
    • Watch variables
    • Immediate window
  • JavaScript Profiler
    • One click start/stop of profiler
    • Quickly see where application is spending time
    • Function or Call Tree View
  • Save Edits
    • Notepad like editing & inline editing
    • Add/Change attributes, classes & properties
    • Make changes to HTML, CSS, and save to disk
  • CSS and HTML debugger

Summary

Internet Explorer 8 is a major release in every sense of the term, across the board. Microsoft has incorporated popular features, adhered to leading standards, made security a priority and created a rich platform with developers in mind. Internet Explorer 8 makes it easier than ever for you to build and maintain sites that reach and connect with your customers like never before.

References

License

This article, along with any associated source code and files, is licensed under The Microsoft Public License (Ms-PL)


Written By
Microsoft
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralMy vote of 1 Pin
auge__8-Jun-10 21:25
auge__8-Jun-10 21:25 
GeneralMy vote of 1 Pin
w_smok31-Jan-10 2:41
w_smok31-Jan-10 2:41 
GeneralMy vote of 1 Pin
Paulo Zemek5-Nov-09 8:13
mvaPaulo Zemek5-Nov-09 8:13 
General[My vote of 1] Now we have to read sparse matrix! -- vote of 1 Pin
Sergey Alexandrovich Kryukov26-Oct-09 17:35
mvaSergey Alexandrovich Kryukov26-Oct-09 17:35 
GeneralMy vote of 1 Pin
Bob Housedorf26-Oct-09 8:01
Bob Housedorf26-Oct-09 8:01 
GeneralMy vote of 1 Pin
R. Giskard Reventlov26-Oct-09 7:42
R. Giskard Reventlov26-Oct-09 7:42 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.