JScript

JScript is not Javascript.

Arrays:
in IE: var arr = [1,];  is an array of 2 elements, 1 and undefined. arr.length = 2
in other browsers, it's an array of 1 elements, arr.length = 1

Select/Options:
adding option with add() is so different that it's better to use appendChild, createTextNode, createElement.

DOM

W3C DOM is not well-implemented in Internet Explorer. Some times IE doesn't respect the specs.

<div id="bla" onclick="alert(1);">test</div>
<script>
document.getElementById('bla').getAttribute('onclick'); // return a function object in IE, a DOMString in other browser.
</script>

CSS

behaviour: url(file.htc)

Note: file.htc should be a file with a content-type of text/x-component
Apache2 .htaccess: AddType text/x-component .htc
PHP: <?php header('Content-type: text/x-component'); ?>

Compatibility mode

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

XHTML

Real .xhtml file or application/xhtml+xml are not understand by IE. It doesn't use a real XML parser to parse them.

Pour traiter les pages comme du HTML:
[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/xhtml+xml]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Extension"=".xhtml"
"Encoding"=hex:08,00,00,00

Pour traiter les pages comme du XML:
[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/xhtml+xml]
"CLSID"="{48123bc4-99d9-11d1-a6b3-00c04fd91555}"
"Extension"=".xhtml"
"Encoding"=hex:08,00,00,00

Note, le CLSID #25336920 représente la librarie mshtml.dll et le #48123bc4 représente la librarie msxml.dll.

Internet Explorer Errors and Failure

ie6 bug

1. Create a new HTML document and call it ie6.bug.htm. After, write this code.

<html>
	<body>
		<object data="ie6bug.htm"></object>
	</body>
</html>
		

2. Create a new HTML document (ie6bug.htm) and write this code.

<html>
<form>
<input type crash>
</form>
</html>
		

Source: /.
Information: Secunia.com
Test: VibranLogic.Com

Object Bug

Faire planter IE 6... avec la balise <OBJECT>

Erreur 800a03e8 sur Internet Explorer 8

2013-01-23

Erreur extrêmement difficile à régler puisqu'on dirait qu'elle ne se produit qu'avec des versions non mis à jour d'Internet Explorer 8 avec Windows XP (supposition). Je n'ai pas pu l'isolé sur mon poste avec la même configuration (mais avec les mises à jour). Certains postes l'ont systématiquement et provoque un crash d'Internet Explorer 8, on ne peut plus visiter d'autres sites par la suite. Il faut redémarrer Internet Explorer avec une autre page.

Cette erreur se produit après un document.write mais n'est pas causé par le contenu du document.write.

Voici ce qui provoque l'erreur d'après ce que j'ai compris. Puisque je n'ai pas pu avoir l'erreur sur mon poste, je n'ai pas pu faire un test minimal.

1. document.write('...balise html...');
2. var div = document.createElement('div'); document.body.appendChild(div); 
   ou  var div = document.createElement('div'); document.body.insertBefore(div, document.body.firstChild);
3. document.write('...balise html...');

Ce n'est ni le document.write, ni le appendChild/insertBefore qui cause le problème, mais le fait d'utiliser les 3 appels.

Seule solution trouvée, utiliser soit document.write ou element.appendChild/element.insertBefore mais pas les deux.

Référence:

Évènements

addEventListener pour IE6, IE7, IE8:

Blocage

Empêcher le menu contextuel et la copie d'image:

	<body oncontextmenu="return false" ondragstart="return false" 
onselectstart="return false">
	</body>

Empêcher la barre d'Outil Image: (200px X 200px):

Toute la page: <meta http-equiv="imagetoolbar" content="no" />
Une image    : <img galleryimg="no" />

Source: What's New in Public Preview of IE 6.0