blob: 3c5270aa800d0f6fae206d0f4057be201628f517 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
---
title: Document.adoptNode()
slug: Web/API/Document/adoptNode
tags:
- API
- DOM
- Document
- Méthodes
- Noeuds
- Propriétaire
translation_of: Web/API/Document/adoptNode
---
<div>{{ ApiRef("DOM") }}</div>
<div> </div>
<p>Adopte un noeud. Le noeud (et son sous-arbre) est supprimé du document dans lequel il se trouve (le cas échéant) et son <code><a href="/fr/docs/Web/API/Node/ownerDocument">ownerDocument</a></code> (<em>document propriétaire</em>) est remplacé par le document en cours. Le noeud peut ensuite être inséré dans le document en cours.</p>
<p><strong>Pris en charge depuis Gecko 1.9 (Firefox 3)</strong></p>
<h2 id="Syntax">Syntaxe</h2>
<pre><var>node</var> = <em>document</em>.adoptNode(<var>externalNode</var>);
</pre>
<dl>
<dt><code> node</code></dt>
<dd>est le noeud adopté qui a maintenant ce document en tant que son <code><a href="/en-US/docs/DOM/Node.ownerDocument">ownerDocument</a></code> (<em>document propriétaire</em>). Le <a href="/en-US/docs/DOM/Node.parentNode"><code>parentNode</code></a> du noeud est <code>null</code>, car il n'a pas encore été inséré dans l'arborescence du document. Notez que <code>node</code> et <code>externalNode</code> sont le même objet après cet appel. </dd>
<dt><code>externalNode</code></dt>
<dd>est le noeud à adopter existant dans un autre document.</dd>
</dl>
<h2 id="Example">Exemple</h2>
<pre class="brush: js">var iframe = document.getElementById('my-iframe');
var iframeImages = iframe.contentDocument.getElementsByTagName('img');
var newParent = document.getElementByTagName('images');
for (var i = 0; i < iframeImages.length; i++) {
newParent.appendChild(document.adoptNode(iframeImages[i]));
}
</pre>
<h2 id="Notes">Notes</h2>
<p>En général l'appel de <code>adoptNode</code> peut échouer en raison du nœud source provenant d'une implémentation différente, mais cela ne devrait pas poser de problème avec les implémentations du navigateur.</p>
<p></p><p>Les nœuds provenant de documents externes doivent être clonés à l'aide de <a href="/fr/docs/Web/API/Document/importNode"><code>document.importNode()</code></a> (ou adoptés avec
<a href="/fr/docs/Web/API/Document/adoptNode"><code>document.adoptNode()</code></a>) avant de pouvoir être insérés dans le document courant. Pour en savoir plus sur les problèmes
de <a href="/fr/docs/Web/API/Node/ownerDocument"><code>Node.ownerDocument</code></a>, consultez la <a href="http://www.w3.org/DOM/faq.html#ownerdoc" rel="noopener">FAQ DOM du W3C</a> (en anglais).</p>
<p>Gecko n'obligeait pas à utiliser <a href="/fr/docs/Web/API/Document/importNode"><code>document.importNode()</code></a> et <a href="/fr/docs/Web/API/Document/adoptNode"><code>document.adoptNode()</code></a> 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
<code>WRONG_DOCUMENT_ERR</code> est déclenchée (<code>NS_ERROR_DOM_WRONG_DOCUMENT_ERR</code>). implémentation dans le <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=47903" rel="noopener">bug 47903</a>.</p><p></p>
<h2 id="Specification">Spécification</h2>
<ul>
<li><a href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-adoptNode">DOM Level 3 Core: Document.adoptNode</a></li>
</ul>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li><a href="/en-US/docs/DOM/document.importNode">document.importNode</a></li>
</ul>
|