From 0ccebc7eb352eda4d26d0b876fea36f24f482eec Mon Sep 17 00:00:00 2001 From: MDN Date: Sat, 17 Apr 2021 00:11:36 +0000 Subject: [CRON] sync translated content --- .../orphaned/web/api/parentnode/append/index.html | 138 +++++++++++++++++++++ .../orphaned/web/api/parentnode/prepend/index.html | 138 +++++++++++++++++++++ .../creating_and_triggering_events/index.html | 97 +++++++++++++++ 3 files changed, 373 insertions(+) create mode 100644 files/fr/orphaned/web/api/parentnode/append/index.html create mode 100644 files/fr/orphaned/web/api/parentnode/prepend/index.html create mode 100644 files/fr/orphaned/web/guide/events/creating_and_triggering_events/index.html (limited to 'files/fr/orphaned') diff --git a/files/fr/orphaned/web/api/parentnode/append/index.html b/files/fr/orphaned/web/api/parentnode/append/index.html new file mode 100644 index 0000000000..a908d4108e --- /dev/null +++ b/files/fr/orphaned/web/api/parentnode/append/index.html @@ -0,0 +1,138 @@ +--- +title: ParentNode.append() +slug: orphaned/Web/API/ParentNode/append +tags: + - API + - DOM + - Reference +translation_of: Web/API/ParentNode/append +original_slug: Web/API/ParentNode/append +--- +
{{APIRef("DOM")}}
+ +

La méthode ParentNode.append insère un ensemble d’objets {{domxref("Node")}} ou {{domxref("DOMString")}} après le dernier enfant de ParentNode. Les objets {{domxref("DOMString")}} (c’est-à-dire les chaînes de caractères) sont insérés comme nœuds {{domxref("Text")}} équivalents.

+ +

Différences avec {{domxref("Node.appendChild()")}} :

+ + + +

Syntaxe

+ +
[Throws, Unscopable]
+void ParentNode.append((Node or DOMString)... nodes);
+
+ +

Paramètres

+ +
+
nodes
+
Un ensemble d’objets {{domxref("Node")}} ou {{domxref("DOMString")}} à insérer.
+
+ +

Exceptions

+ + + +

Exemples

+ +

Ajouter un élément

+ +
var parent = document.createElement("div");
+var p = document.createElement("p");
+parent.append(p);
+
+console.log(parent.childNodes); // NodeList [ <p> ]
+
+ +

Ajouter du texte

+ +
var parent = document.createElement("div");
+parent.append("Du texte");
+
+console.log(parent.textContent); // "Du texte"
+ +

Ajouter un élément et du texte

+ +
var parent = document.createElement("div");
+var p = document.createElement("p");
+parent.append("Du texte", p);
+
+console.log(parent.childNodes); // NodeList [ #text "Du texte", <p> ]
+ +

ParentNode.append() est unscopable

+ +

La méthode append() n’est pas accessible dans un bloc with. Voir {{jsxref("Symbol.unscopables")}} pour plus d’information.

+ +
var parent = document.createElement("div");
+
+with(parent) {
+  append("foo");
+}
+// ReferenceError: append is not defined 
+ +

Polyfill

+ +

Vous pouvez utiliser la méthode append() dans Internet Explorer 9 (et supérieur) avec le code suivant :

+ +
// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md
+(function (arr) {
+  arr.forEach(function (item) {
+    if (item.hasOwnProperty('append')) {
+      return;
+    }
+    Object.defineProperty(item, 'append', {
+      configurable: true,
+      enumerable: true,
+      writable: true,
+      value: function append() {
+        var argArr = Array.prototype.slice.call(arguments),
+          docFrag = document.createDocumentFragment();
+
+        argArr.forEach(function (argItem) {
+          var isNode = argItem instanceof Node;
+          docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));
+        });
+
+        this.appendChild(docFrag);
+      }
+    });
+  });
+})([Element.prototype, Document.prototype, DocumentFragment.prototype]);
+ +

Spécification

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('DOM WHATWG', '#dom-parentnode-append', 'ParentNode.append()')}}{{Spec2('DOM WHATWG')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +

{{Compat("api.ParentNode.append")}}

+ +

Voir également

+ + diff --git a/files/fr/orphaned/web/api/parentnode/prepend/index.html b/files/fr/orphaned/web/api/parentnode/prepend/index.html new file mode 100644 index 0000000000..0845356a51 --- /dev/null +++ b/files/fr/orphaned/web/api/parentnode/prepend/index.html @@ -0,0 +1,138 @@ +--- +title: ParentNode.prepend() +slug: orphaned/Web/API/ParentNode/prepend +tags: + - API + - DOM + - Méthodes + - Noeuds + - parent +translation_of: Web/API/ParentNode/prepend +original_slug: Web/API/ParentNode/prepend +--- +
{{APIRef("DOM")}}
+ +

La méthode ParentNode.prepend insère un jeu d'objets {{domxref("Node")}} (noeud) ou {{domxref("DOMString")}} (chaîne de caractères) avant le premier enfant de ParentNode. Les objets {{domxref("DOMString")}} sont insérés comme équivalant des noeuds {{domxref("Text")}}.

+ +

Syntaxe

+ +
ParentNode.prepend(nodesToPrepend);
+
+ +

Paramètres

+ +
+
nodesToPrepend
+
Un noeud ou plus à insérer avant le premier noeud enfant dans le ParentNode courant. Chaque noeud peut être spécifié comme un objet {{domxref("Node")}} ou comme une chaîne de caractères ; les chaînes sont insérées comme de nouveaux noeuds {{domxref("Text")}}.
+
+ +

Valeur retournée

+ +

undefined (indéfini).

+ +

Exceptions

+ + + +

Exemples

+ +

Ajout d'un élément

+ +
var parent = document.createElement("div");
+var p = document.createElement("p");
+var span = document.createElement("span");
+parent.append(p);
+parent.prepend(span);
+
+console.log(parent.childNodes); // NodeList [ <span>, <p> ]
+
+ +

Ajout d'un texte

+ +
var parent = document.createElement("div");
+parent.append("Some text");
+parent.prepend("Headline: ");
+
+console.log(parent.textContent); // "Headline: Some text"
+ +

Ajout d'un élément et d'un texte

+ +
var parent = document.createElement("div");
+var p = document.createElement("p");
+parent.prepend("Some text", p);
+
+console.log(parent.childNodes); // NodeList [ #text "Some text", <p> ]
+ +

ParentNode.prepend() est non accessible

+ +

La méthode prepend() n'est pas comprise dans l'instruction with. Voir {{jsxref("Symbol.unscopables")}} pour plus d'informations.

+ +
var parent = document.createElement("div");
+
+with(parent) {
+  prepend("foo");
+}
+// ReferenceError: prepend is not defined (prepend n'est pas défini)
+ +

Polyfill

+ +

vous pouvez utiliser le polyfill pour la méthode prepend() si elle n'est pas disponible :

+ +
// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md
+(function (arr) {
+  arr.forEach(function (item) {
+    if (item.hasOwnProperty('prepend')) {
+      return;
+    }
+    Object.defineProperty(item, 'prepend', {
+      configurable: true,
+      enumerable: true,
+      writable: true,
+      value: function prepend() {
+        var argArr = Array.prototype.slice.call(arguments),
+          docFrag = document.createDocumentFragment();
+
+        argArr.forEach(function (argItem) {
+          var isNode = argItem instanceof Node;
+          docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));
+        });
+
+        this.insertBefore(docFrag, this.firstChild);
+      }
+    });
+  });
+})([Element.prototype, Document.prototype, DocumentFragment.prototype]);
+ +

Spécification

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('DOM WHATWG', '#dom-parentnode-prepend', 'ParentNode.prepend()')}}{{Spec2('DOM WHATWG')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +

{{Compat("api.ParentNode.prepend")}}

+ +

Voir aussi

+ + diff --git a/files/fr/orphaned/web/guide/events/creating_and_triggering_events/index.html b/files/fr/orphaned/web/guide/events/creating_and_triggering_events/index.html new file mode 100644 index 0000000000..d00b3bd6c4 --- /dev/null +++ b/files/fr/orphaned/web/guide/events/creating_and_triggering_events/index.html @@ -0,0 +1,97 @@ +--- +title: Création et déclenchement d'événements +slug: orphaned/Web/Guide/Events/Creating_and_triggering_events +tags: + - API + - Avancé + - DOM + - Guide + - JavaScript + - évènements +translation_of: Web/Guide/Events/Creating_and_triggering_events +original_slug: Web/Guide/Events/Creating_and_triggering_events +--- +

Cet article montre comment créer et distribuer des événements DOM. De tels événements sont généralement appelés événements synthétiques afin de les distinguer des événements levés par le navigateur lui-même.

+ +

Création d'événements personnalisés

+ +

Les événements peuvent être créés avec le constructeur Event de cette manière :

+ +
var event = new Event('build');
+
+//Ecouter l'événement.
+elem.addEventListener('build', function (e) { ... }, false);
+
+//distribuer l'événement.
+elem.dispatchEvent(event);
+ +

Ce constructeur est pris en charge par la plupart des navigateurs modernes (Internet Explorer étant l'exception). Pour une approche plus verbeuse (qui fonctionne avec Internet Explorer), voir l'ancienne approche ci-dessous.

+ +

Ajout de données personnalisée - CustomEvent ()

+ +

Pour ajouter d'autres données à l'objet événement, il existe l'interface CustomEvent. Dans cette interface, la propriété detail peut être utilisée pour transmettre des données personnalisées. Par exemple, l'événement peut être créé de la manière suivante :

+ +
var event = new CustomEvent('build', { 'detail': elem.dataset.time });
+ +

Cela permet à la fonction qui capture l'événement (la fonction de rappel) d'accéder aux données supplémentaires :

+ +
function eventHandler(e) {
+  log('The time is: ' + e.detail);
+}
+
+ +

L'ancienne approche

+ +

L'ancienne manière de créer des événements utilise des API inspirées par Java. Le code suivant en montre un exemple :

+ +
// Crée l'événement
+var event = document.createEvent('Event');
+
+// Nomme l'événement 'build'.
+event.initEvent('build', true, true);
+
+// Écoute l'événement.
+elem.addEventListener('build', function (e) {
+  // e.target correspond à elem
+}, false);
+
+// target peut être n'importe quel Element ou autre EventTarget.
+elem.dispatchEvent(event);
+
+
+ +

Le déclenchement d'événements intégrés

+ +

Cet exemple démontre la simulation d'un clic (programmation générant un événement de clic) sur une case à cocher en utilisant des méthodes DOM. Voir l'exemple en action.

+ +
function simulateClick() {
+  var event = new MouseEvent('click', {
+    'view': window,
+    'bubbles': true,
+    'cancelable': true
+  });
+  var cb = document.getElementById('checkbox');
+  var canceled = !cb.dispatchEvent(event);
+  if (canceled) {
+    //Un gestionnaire appelé preventDefault.
+    alert("canceled");
+  } else {
+    //Aucun gestionnaires appelé preventDefault.
+    alert("not canceled");
+  }
+}
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("api.Event.Event")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf