Log in / create account | Login with OpenID
DocForge
An Open Wiki For Software Developers

Internet Explorer

From DocForge

Internet Explorer, abbreviated IE, is a web browser developed by Microsoft®.

Version 7 is available for Windows XP and Windows Vista operating systems.

Contents

Standards Compliance [edit]

Internet Explorer currently conforms to many, but not all, parts of the HTTP, HTML, and CSS standards.

HTTP [edit]

  • Internet Explorer, at least until version 6, ignores the MIME type set in the HTTP header if the URL ends in a file extension. IE inspects the file extension and assumes the file type.

HTML [edit]

  • The button element's value property is not properly represented in the DOM or form submissions. The actual value property is ignored and the inner HTML of the button is set as the value instead. Therefore Firefox and Safari will present one value, while IE will present another. (Versions 6 and 7; fixed in IE 8)
  • The button element's type property does not correctly default to submit as described in the HTML 4 standard. (Versions 6 and 7)
  • All style tags after the first 30 within one HTML page are ignored.[1] It's commonly considered bad practice to include so many separate style dags in a document, but during development web applications of modular design will often insert their own styles into a page. For production release those separate styles are best merged into one document. This limit within IE, however, is completely arbitrary and breaks standards compliance.

JavaScript [edit]

  • IE7 does not support an extra ending comma in object literals. For example, {'one':1, 'two':2,} will cause a syntax error. This issue is fixed in IE8.

Styling Differences [edit]

The CSS standards are somewhat vague on how some styles, especially defaults, should be handled. Therefore IE has some differences from other browsers that aren't a break from the standards, but should be noted when styling pages.

  • By default the body element has a margin. It can be explicitly set to 0 to be consistent across browsers.

Issues [edit]

Microsoft maintains an extensive database of issues. Some IE issues are of particular interest to web developers:

  • In at least versions 5, 6, 7, and 8 of Internet Explorer, web applications can not send files for download over HTTPS without cache control headers that aren't required by other web browsers. If the response header contains ""Content-Disposition: attachment; filename=[...]", then the response header must also contain "Expires: 0", "Cache-Control: private", and "Pragma: cache". Without these additional headers, a message similar to the following will pop up for the end user: "Cannot download X from example.com. Internet Explorer was not able to open this Internet site. The requested site is either unavailable for cannot be found."
  • IE does not warn the user of rendering errors. When using JavaScript to inject malformed content, it's possible that nothing gets rendered and no errors are returned. For example, when jQuery's AJAX "load" function is used to load HTML content from a server, the content will not display and no error will be raised if the HTML does not conform to the page's mode.

Versions [edit]

Internet Explorer 8 [edit]

Internet Explorer 8 is advertised to have better standards compliance and security. Among the security enhancements is a feature to execute each browser tab in a separate process. Unlike Google Chrome, however, each process is not explicitly assigned to any tab, and therefore complete isolation, such as to prevent cross-site scripting attacks, may not exist.

JavaScript [edit]

IE 8 contains various JavaScript changes from previous versions: [2]

  • AJAX navigation - web pages can trigger updates to browser components like the address bar by altering the value of window.location.hash.
  • DOM storage
  • Selectors API based on the W3C standard for querying elements based on CSS [3]
  • XMLHTTPRequest adds a timeout property
  • Cross-domain requests (XDR) with XDomainRequest
  • Cross-document messaging (XDM) API allows communication through iframes between documents, including across different domains
  • HTML sanitization via toStaticHTML
  • Native JSON support
  • DOM Prototype and getter/setter support


See Also [edit]

Notes [edit]

  1. http://support.microsoft.com/kb/262161
  2. Internet Explorer 8 Readiness Toolkit
  3. MSDN - Selecting Objects with JavaScript