Welcome to the
Header Line
Install Internet Explorer 8 Menu Line Everything a developer needs to know Menu Line New and exciting features Menu Line Release notes Menu Line Testing tools Menu Line Resources and links Menu Line Disclaimer

How do I make my site 'light up' with Internet Explorer 8?

On this page:


Activities are contextual menu options which quickly access a service from any Web page. Users typically copy and paste from one Web page to another. Internet Explorer 8 Activities make this common pattern easier to do.

Activities typically involve two types of scenarios: "look up" of information within a Web page, and "send" of Web content to a Web application. Consider the example of a user who is interested in a restaurant and wants to see its location. This is the form of a "look up" Activity, where the user selects the address and views an in-place view of the map using a favorite map service.

Activities Screenshot

In an example of a "send" Activity, a user reads an interesting article and wants to blog about it. The user can select a portion of the article and use the blog Activity. This navigates to the user's blog site with the selection already available in the edit field.

Users can access an Activity on selection simply by selecting content and opening the context menu. For example, users can select an address on a webpage and the Activity button appears. Alternatively, you can access selection Activities from the context menu. Activities are also available for the current webpage in the Page menu on the Command bar and for links within a page in the context menu for the link.

Activities are services that the user can install and manage. Users can install them from the Internet Explorer 8 Service Guide or through any website that advertises Activities.

Activities are described using an XML file that provides the interface of how the browser should communicate with the service through URL templates. Web-based services should take advantage of the XML-based Activities since they are easier to create, test, and deploy to users.

This is a simple sample that shows the map Activity that you can host on a website:

Activity XML file – copy the sample code below to a text editor and save it as "GetMap.xml". This code below describes the functionality of the Activity.

<?xml version="1.0" encoding="UTF-8"?>
  <openServiceDescription xmlns=”http://www.microsoft.com/schemas/openservicedescription/1.0”>
    <name>Map with Windows Live</name>
  <activity category=”map”>
    <activityAction context=”selection”>
      <preview action= ”http://maps.live.com/geotager.aspx">
        <parameter name="b" value="{selection}"/>
        <parameter name="clean" value="true"/>
        <parameter name="w" value="320"/>
        <parameter name="h" value="240"/>
      <execute action="http://maps.live.com/default.aspx">
        <parameter name="where1" value="{selection}" type="text" />

Hosting the install button – add this code snippet to the website that you want to advertise the Activity.

<button onclick="javascript:window.external.addService('GetMap.xml')">Add Map Activity</button>
To test:
  1. Install the Activity by clicking on the "Install" button on your website. This launches the installation dialog.
  2. Check the "Make this my default provider" check box. This sets the Activity to appear in the top listing for Activities.
  3. Go to a site that contains a street address.
  4. Select the address and click on the button that appears next the mouse cursor.(Alternatively, you can right-click to get the context menu.)
  5. Hover over the "Map with Live Maps" Activity. This displays the preview of the map Activity.
  6. Click on the "Map with Live Maps" Activity. This navigates to the map Web site in a new tab.
See Activities white paper for more information.

Hands on Lab for Activities

return to top


WebSlices is a new feature for websites to connect to their users by subscribing to content directly within a webpage. WebSlices behave just like feeds where clients can subscribe to get updates and notify the user of changes.

A WebSlice is a portion within a webpage that is treated like a subscribe-able item, just like a feed. To enable a WebSlice on your website, annotate your webpage with class names for the title, description, and other subscribe-able properties.

Internet Explorer 8 Users can discover WebSlices within a webpage and add them to the Favorites bar, a dedicated row below the Address bar for easy access to links. Internet Explorer 8 subscribes to the webpage, detects changes in the WebSlice, and notifies the user of updates. Users can preview these updates directly from the Favorites bar and click-through to the website to get more information.

WebSlice Authoring

WebSlices are enabled by adding HTML annotations directly to the webpage. WebSlices use a combination of the hAtom Microformat and the WebSlice format to describe a subscribe-able portion of a webpage.

The Basics

The basic properties of a WebSlice are the WebSlice container, Entry Title, and Entry Content.


  • Required.
  • Uses class name hslice.
  • The WebSlice element must include an ID.
  • Represents the entire region of a WebSlice that contains the title, description, and other WebSlice properties.

Entry Title

  • Required
  • Uses class name entry-title as defined in the hAtom Microformat.
  • There can be multiple instances of Entry Title.

Entry Content

  • Optional
  • Uses class name entry-content as defined in the hAtom Microformat.
  • If the Entry Content is missing, assume it is the empty string.
  • There can be multiple instances of Entry Content.

This is an example of how to mark up an auction item with the link, title, and description properties.


<div class=”hslice” id=”1”>
  <p class=”entry-title”>item - $66.00</p>
  <div class=”entry-content”>high bidder:buyer1
See WebSlices white paper for more information.

Hands on Lab for WebSlices

return to top

CSS 2.1 Compliance

Style Sheets

Cascading Style Sheets (CSS) is a simple mechanism for adding style (e.g. fonts, colors, spacing, positioning) to Web documents. Before the introduction of CSS, stylistic properties were set directly within HTML through different attributes. With CSS, authors may separate a page’s data specified via HTML from the display logic, thus improving markup organization and facilitating easier site maintenance.

The W3C CSS working group has made great strides towards converging on a final specification for CSS 2.1. At the time of this writing, the specification is in ‘Candidate Recommendation’. The main goal of this effort is to enable web developers and designers to write their pages once and have them render properly in many browsers. The new Web Developer Toolbar included with Internet Explorer 8 will also help in this endeavor. Internet Explorer 8 supports the latest feature set as defined in the specification.

While one of Internet Explorer 8’s main goals is CSS 2.1 compliance, it is also forward looking towards CSS3. CSS3 is the next step in the evolution of Cascading Style Sheets, and unlike CSS 2.1 which consists of one single document, the CSS3 specification is broken down into different modules in order to increase the speed of converging on clear specifications and implementations of different features. Additionally, CSS3 hopes to further clarify some of the ambiguities in the CSS2.1 Specification while providing new features to web authors. Internet Explorer 8 hopes to implement some of the most requested CSS3 features by web developers and designers. 

See CSS 2.1 Compliance white paper for more information.

Hands on lab for CSS 2.1 Compliance

return to top

Data URI Support

Data URIs offer web developers the opportunity to embed small external resources (like CSS files or images) directly into a URL on a webpage:

<img alt="Image fed from data url" src="data:image/png;base64,iVBORw0KGgoAAA..." />

The primary use case for data URIs is the encapsulation of a binary file inside an URL (a stylesheet or image). Because the binary file can be represented inline as a string, it may be saved to the local store and retrieved at a later time without needing to fetch anything from the network.

Data URIs also offer an alternative to traditional URIs in that they don’t require a separate download; this is advantageous in scenarios where sub downloads are blocked or unavailable.

Internet Explorer 8’s data URI implementation attempts to balance security with functionality.

See Data URI Support white paper for more information.

return to top

Printing Improvements

Internet Explorer 8 includes several print enhancements. These form the basis for a full implementation of CSS 2.1 pagination recommendations, and provide authors with more control and functionality in the print medium. In particular, support has been added for the following printing constructs:

  1. @page rule.
  2. Left, right and first page selectors.
  3. 3. "avoid", "left", and "right" values for page-break-after and page-break-before properties.
  4. Page-break-inside property.
  5. widows property.
  6. orphans property.

These improvements give developers greater control over how content is paginated across finite views. Developers can specify margin area, portions of content that must be kept together or split across pages, and much more. With this in mind, readability of printed Web content can be greatly improved.

See Printing Improvements white paper for more information.

return to top

Developer Tools and Versioning

Developer Tools

Internet Explorer 8 includes tools that Web developers need to efficiently debug their sites directly in Internet Explorer. Developers can immediately debug a site's HTML, CSS, and JScript from within Internet Explorer 8, rather than switch between Internet Explorer and a separate development environment.

In addition, Internet Explorer 8 Developer Tools help developers identify why their site does not render or behave as expected. They do this by providing visibility into Internet Explorer's internal representation of the site rather than just a source view.

Finally, by making it simple to edit any site, Internet Explorer 8 Developer Tools makes experimentation and iterative development easy. This enables rapid prototyping and helps developers improve their skills.

See Developer Tools white paper for more information.

Hands on Lab for Developer Tools

return to top

Versioning and Internet Explorer Modes

Versioning and Internet Explorer rendering modes provide the following; it allows Internet Explorer 8 to remain compatible with today’s web content and provides a mechanism to introduce new features and stricter standards compliance.

Internet Explorer 8 has three different Layout modes:

  • Quirks – backwards compatibility with IE5 rendering behavior.
  • IE7 Standards – backwards compatibility with IE7 JavaScript and layout behavior.
  • IE8 Standards – latest features, including the CSS 2.1 compliant layout engine and DOM/HTML breaking changes.

By default, Internet Explorer will attempt to display content using its most standards compliant mode, the IE8 Standards mode. To allow existing site content to remain compatible with Internet Explorer 8, site operators may designate the correct layout mode for Internet Explorer 8 clients via a new compatibility mode switch.

See Versioning and Internet Explorer Modes white paper for more information.

return to top

Versioning and Cross-document Interaction

Internet Explorer 8 introduces the IE8 standards mode by default—this lets Web designers use the latest rendering features available in Internet Explorer 8. In addition to layout changes, IE8 standards mode will also affect the behavior of scripted APIs (DOM).

To opt-out of IE8 standards mode, the META tag may be used to obtain IE7 compatibility mode:

<meta http-equiv="X-UA-Compatible" content="IE=7">

Versioning of the DOM APIs introduces additional complexity for Web developers interacting through script with framesets and inline frames, HTC files (element behaviors), and various HTML dialogs that are in different modes. For example, one frame in IE8 standards mode may interact with another frame that is in IE7 compatibility mode. Script authors must understand how versioning will affect DOM APIs that have different behaviors when invoked across document boundaries. The following scenarios illustrate these behaviors.

  • A single webpage may host one or more IFrames (or frames) that contain documents of differing modes. For example, a webpage in IE7 compatibility mode (such a portal) may host newer IE8 standards mode content.
  • A webpage may create a new window or dialog (such as through window.open) that loads content from a document with a different mode. The Web page then proceeds to call DOM APIs on that new window.

Other scenarios—such as frameworks and mashups injected through document.write or <script src="framework.js">—are not explicitly handled by cross-document versioning, because they do not involve the creation of a new document. In these scenarios, Web developers must take care to author their content in a way that works well with any document mode.

See Versioning and Cross-Document Interaction white paper for more information.

return to top

Better AJAX Development

Improving developer productivity is one of the primary goals of Internet Explorer 8. We set out to achieve this goal in part by providing cross-browser interoperability, standards compliance and additional powerful APIs.

Internet Explorer 8 provides a simplified yet powerful programming model for AJAX development that spans browser, webpage, and server interaction. As a result, it is easier for you to build webpages that have much better end-user experiences, are more functional, and have better performance. APIs are based on the W3C HTML 5.0 or Web Applications Working Group standards. Enhancements or novel intellectual property for AJAX will be made available for standardization before the Internet Explorer 8 release.

The following AJAX improvements bridge the gap between browser and webpage to help you provide a better user experience:

  1. AJAX Navigation enables users to navigate back and forth without leaving the AJAX application and could be used navigating a page without performing a traditional full navigation. This allows websites to trigger an update to browser components like the address bar by setting the window.location.hash value, firing an event to alert components in the page and even creating an entry in the travel log.
  2. DOM Storage is a simple-to-use method for storing and retrieving strings of key/value pair data. Data can be stored per tab instance for a session or persisted to the local machine. This allows pages to cache text on the machine which reduces the effect of network latencies by providing faster access to pre-cached data. Several innovative uses are possible. For example, use this in combination with the new network connectivity event to allow a page to cache data if it detects that the computer is offline.
  3. Connectivity events allow websites to check when the user is connected to the network and receive notification of connectivity changes.
  4. Six connections per host instead of two for broadband scenarios and a scriptable property allow for more improved performance by allowing parallelization of downloads in Internet Explorer 8. In addition, this increases functionality by ensuring a request is not blocked to a host if two connections already exist. Websites can optimize their downloads based on a scriptable property.
  5. XMLHTTPRequest Enhancements include a timeout property that can be set to cancel the request if necessary, allowing developers to manage the request better.

Cross-domain communication is an integral part of AJAX development and mashup Web applications. Internet Explorer 8 includes two features to help you build cross-domain communications that are safe and easy to implement:

  • With Cross-domain Request (XDR), developers can create cross-site data aggregation scenarios. Similar to the XMLHttpRequest object but with a simpler programming model, this request, called XDomainRequest, is the easiest way to make anonymous requests to third-party sites that support XDR and opt in to making their data available across domains. Three lines of code will have you making basic cross-site requests. This will ensure data aggregation for public sites (such as blogs) will be simple, secure and fast.
  • Cross-document Messaging (XDM) APIs allow communication between documents from different domains through IFrames in a way that is easy, secure and standardized.
See Better AJAX development white paper for more information.

Hands on Lab for AJAX Local Storage and Client Side State Management Tools

Hands on Lab for AJAX Communication Objects and Protocols

return to top

DOM Core Improvements

During Internet Explorer 6's long tenure as the leading market-share holder, Web developers revealed many bugs and inconsistencies in Internet Explorer's DOM. Today, with the Internet Explorer 8 versioning plan, these bugs and inconsistencies are corrected by default, and those customers who choose to opt out of this behavior may enable IE7 compatibility mode.

The majority of bug reports in the realm of HTML/Core functionality involve fixing Internet Explorer's attribute handling, which does not interoperate well with other browser's implementations. These problems can be broken down into two general categories:

  • Internet Explorer's object model does not distinguish properties from attributes. This makes it impossible for a property (.href) to return a different value than an attribute (getAttribute('href')).
  • Core attribute operations are broken: Getters and setters behave inconsistently given certain parameters. An oft-cited example is getAttribute('style'), which returns the style object rather than a string as expected.

Internet Explorer 8 fixes many of the cross-browser inconsistencies in these two areas. Specifically, the following bugs in core areas have been fixed:

  • Separate URL handing for properties and attributes such that relative URLs can be retrieved via an attribute and absolute URLs can be retrieved via a property.
  • Fix element's attribute array modifiers—getAttribute, setAttribute, and removeAttribute have cross-browser compatible implementations.
  • Other attribute-related API fixes implemented.
See DOM Core Improvements white paper for more information.

return to top

Selectors API

Selectors are a query language for searching and “selecting” tags (elements) within a webpage. They are most commonly seen in CSS to “select” a group of elements to which certain properties will be applied:

   property: value;
   property2: value;

In Internet Explorer 7 there is no way of "executing" the selector independently of CSS. Internet Explorer 8’s implementation of the Selectors API is based on the W3C Working Draft: http://www.w3.org/TR/selectors-api/

See Selectors API white paper for more information.

return to top

Platform Performance Improvements

Internet Explorer 8 includes several changes that improve the performance of Web sites. These changes affect many Internet Explorer subsystems, including the HTML parser, CSS rule processing, markup-tree manipulation as well as the JScript garbage collector and runtime.

The majority of these changes will affect performance only, with little to no functional effect on most Web sites. However, they may expose aspects of Web sites that depend on the timing of operations or performance of the browser. In addition, those Web sites that unknowingly access objects after they are freed may find such access failing in Internet Explorer 8.

Internet Explorer 8's performance improvements affect each site loaded in Internet Explorer 8 regardless of the chosen rendering mode.

See Platform Performance Improvements white paper for more information.

return to top

Circular Memory Leak Mitigation

Internet Explorer 8 includes improvements to memory management. These improvements mitigate memory leaks that were previously created by circular references between JScript objects and DOM objects.

This feature may affect the behavior of webpages that depend on garbage memory that, only as the result of a memory leak, existed in previous versions of Internet Explorer. In Internet Explorer 8, these pages will reference unallocated memory and generate a fault.

This feature affects each website displayed in Internet Explorer 8 regardless of the site's chosen rendering mode.

See Circular Memory Leak Mitigation white paper for more information.

return to top

HTML Improvements and ACID2

HTML uses elements to represent both structure and meaning in a document. To help developers take full advantage of the elements that HTML 4 offers, and to better provide the semantic meaning intended by Web author, Internet Explorer 8 has upgraded support of the following presentational elements:

  • The P element: Represents a logical paragraph.
  • The OBJECT element: May represent any object including images.

Through improved support of these HTML elements, Web developers may build more expressive and accessible HTML markup.

See HTML Improvements and ACID2 white paper for more information.

return to top

Improved Namespace Support

Internet Explorer 8 offers Web developers the opportunity to write standards-compliant HTML-based Web pages that support features (such as SVG, XUL, and MathML) in namespaces, provided that the client has installed appropriate handlers for those namespaces via binary behaviors. (A binary behavior is a type of ActiveX control.)

Internet Explorer 5 through Internet Explorer 7 provides limited element namespace support. (This support keeps the parser from treating namespaced elements as native HTML elements.) By using element namespaces, Web developers can apply behaviors to those elements through special HTML markup (called HTML Components or HTCs), and COM developers can apply binary behaviors. Only elements in a namespace can have binary behaviors applied to them.

Internet Explorer 8 improves its namespace support by reducing the amount of code necessary to instantiate and use a binary behavior. Internet Explorer 8 also continues to support HTCs but has not made any new investments in that area.

See Improved Namespace Support white paper for more information.

return to top

Improved Protected Mode API Support

Internet Explorer 8 makes it easier for developers to programmatically start, interact, and maintain a Protected-Mode Internet Explorer process. Building off of User Account Control (UAC) integration in Internet Explorer 7, the IWebBrowser2 interface provides new process-creation methods that properly conform to user privilege levels. Developers can now spawn and control Protected-Mode Internet Explorer processes, and avoid confusing workarounds, with a low-cost change to existing code.

See Improved Protected Mode API Support white paper for more information.

return to top