Changements dans Gecko 1.9 affectant les sites Web
==================================================

Cette page essaie de donner un aperçu des changements entre Gecko 1.8 et Gecko 1.9 qui pourraient éventuellement affecter le comportement ou le rendu des sites Web.

Consultez également Firefox 3 pour les développeurs.

Évènements
----------

### Gestionnaires d'évènements capturants `load`

Dans Gecko 1.8, il n'était pas possible de définir des gestionnaires d'évènements `load` capturants sur les images. Dans Gecko 1.9, cela devient possible avec la résolution du bug Firefox 234455. Cela peut cependant causer des problèmes sur les sites Web qui ont incorrectement défini leurs gestionnaires d'évènements sur l'évènement `load`. Consultez la discussion dans le bug Firefox 335251. Pour résoudre ce problème, les pages en question ne doivent pas définir de gestionnaires d'évènements capturants pour l'évènement `load`.

Par exemple, ceci :


```js
window.addEventListener("load", votreFonction, true);
```


devrait être remplacé par ceci :


```js
window.addEventListener("load", votreFonction, false);
```


Pour une explication du fonctionnement de la capture des évènements, consultez DOM Level 2 Event capture (en)

### `preventBubble` a été supprimée

Dans Gecko 1.8, la méthode `preventBubble` existait sur les évènements pour les empêcher de se propager plus haut. Dans Gecko 1.9, cette méthode a été supprimée. À la place, utilisez la méthode standard stopPropagation(), qui fonctionne également dans Gecko 1.8. Ce changement a été produit par le patch pour le bug Firefox 330494. Consultez également le bug Firefox 105280.

### Quelques autres anciennes API d'évènements ne sont plus supportées

window.captureEvents, window.releaseEvents et `window.routeEvent` ne sont plus supportées dans Gecko 1.9.

DOM
---

### L'exception `WRONG_DOCUMENT_ERR` se déclenche lorsque l'on essaie d'utiliser un nœud d'un document différent

 Les nœuds provenant de documents externes doivent être clonés à l'aide de `document.importNode()` (ou adoptés avec
 `document.adoptNode()`) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes
 de `Node.ownerDocument`, consultez la FAQ DOM du W3C (en anglais).

 Gecko n'obligeait pas à utiliser `document.importNode()` et `document.adoptNode()` avant sa version 1.9. Depuis les versions 1.9
 alphas, si un nœud n'est pas adopté ou importé avant d'être utilisé dans un autre document, l'exception
 `WRONG_DOCUMENT_ERR` est déclenchée (`NS_ERROR_DOM_WRONG_DOCUMENT_ERR`). implémentation dans le bug 47903.

Ranges
------

### `intersectsNode` a été supprimée

Dans Gecko 1.8, la fonction `intersectsNode` pouvait être utilisée pour vérifier si un nœud faisait partie d'un range. Cependant, les valeurs renvoyées par cette fonction étaient trompeuses et rarement utiles. Elle a donc été retirée de Gecko 1.9. Utilisez à la place la fonction standard et plus précise compareBoundaryPoints. Cette fonction a été retirée par le patch du bug Firefox 358073.

Consultez la documentation de intersectsNode pour savoir comment utiliser `compareBoundaryPoints` à la place.

### `compareNode` a été supprimée

Dans Gecko 1.8, la fonction `compareNode` pouvait être utilisée pour tester l'intersection d'un nœud avec un range. Cependant, les valeurs renvoyées par cette fonction étaient trompeuses et rarement utiles. Elle a donc été retirée de Gecko 1.9. Utilisez à la place la fonction standard et plus précise compareBoundaryPoints. Cette fonction a été retirée par le patch du bug Firefox 358073.

Consultez la documentation de compareNode pour savoir comment utiliser `compareBoundaryPoints` à la place.

HTML
----

### Correction de nombreux bogues dans le code de `<object>`

* Les éléments `object` et `embed` n'ont plus besoin d'attribut `type` pour être rendus.
* La modification de l'attribut `src` (de `<embed>`) ou de l'attribut `data` (de `<object>`) via JavaScript fonctionne maintenant correctement.
* L'en-tête `Content-Type` envoyé par le serveur (s'il existe) est maintenant prioritaire par rapport à l'attribut `type` d'une balise `<object>` comme défini dans la spécification HTML (ceci n'est pas le cas pour `embed`).